使用Upstart時,控制子進程(子進程)非常重要。但是,什麼困惑我的是如下,這已經超越了新貴本身:'su -c command'生成的子進程的數量(子進程)
場景1:[email protected]:~$ ps -ef | grep -v grep | grep sleep
root 8026 6544 0 11:11 pts/2 00:00:00 su cr -c sleep 20 > /tmp/a.out
cr 8027 8026 0 11:11 ? 00:00:00 bash -c sleep 20 > /tmp/a.out
cr 8028 8027 0 11:11 ? 00:00:00 sleep 20
場景2:
[email protected]:~/Desktop# su cr -c 'sleep 20 > /tmp/a.out'
我用了3個進程
[email protected]:~/Desktop# su cr -c 'sleep 20'
我有兩個過程是:[email protected]:~$ ps -ef | grep -v grep | grep sleep
root 7975 6544 0 10:03 pts/2 00:00:00 su cr -c sleep 20
cr 7976 7975 0 10:03 ? 00:00:00 sleep 20
的sleep 20
的過程是一個我關心,尤其是暴發戶,由新貴管理的過程應該是這樣的,而不是bash -c sleep 20 > /tmp/a.out
由暴發戶管理,而而不是sleep 20
。
在場景1中,暴發戶無法正常工作,以上是原因。
因此,爲什麼場景1有3個過程,這對我來說沒有意義。即使我知道我可以使用命令'exec'來修復它,但我只想獲得當兩個命令提交時發生的情況。
它看起來像[XY問題](http://meta.stackexchange.com/a/66378/137096)。你真正的問題是什麼?忘了'su',你想用'upstart'運行什麼命令?描述你期望發生什麼以及發生什麼。 – jfs