При использовании Upstart очень важно контролировать подпроцессы (дочерний процесс). Но что смущает меня, как следующий, который вышел за пределы самого выскочку:сколько дочернего процесса (подпроцесса), генерируемого командой su -c
Сценарий 1:
[email protected]:~/Desktop# su cr -c 'sleep 20 > /tmp/a.out'
меня 3 процесса по: [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'
я получил 2 процесса по: [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
один я заботиться, особенно в Upstart, процесс, управляемый Upstart должно быть это пока не bash -c sleep 20 > /tmp/a.out
управляется Upstart, в то время как а не sleep 20
.
В сценарии 1 выскочка не будет работать правильно, это причина.
Поэтому, почему сценарий 1 получил 3 процесса, для меня это не имеет смысла. Хотя я знаю, что могу использовать команду «exec», чтобы исправить это, я просто хочу получить процедуру, которая произошла, когда две команды были выполнены.
похоже [XY проблема] (http://meta.stackexchange.com/a/66378/137096). Какова ваша фактическая проблема? Забудьте о 'su', какую команду вы хотите использовать, используя' upstart'? Опишите, что вы ожидаете, и что происходит вместо этого. – jfs