У меня есть простой сценарий оболочки, например
#!/bin/bash
sh -c "sleep 60" &
exec sleep 120
При использовании pstree
команда, я нашел что-то вроде
`-sleep(11681)---sleep(11682)
Первый сон связан с sh -c
, поэтому даже если я выполняю этот сон в фоновом режиме, он теперь является родительским в моем exec
спится.
Вопрос: Как отделить первый сон и заставить pstree
есть что-то вроде
-sleep(11681)
-sleep(11682)
спать 60 и спать 120 и ждать
Первый сон уже отошел. Что происходит, так это то, что sleep 60
является родительским элементом оболочки, в которой запущен сценарий, тогда exec
заменяет эту оболочку на sleep 120
, Так что ваши sleep 120
теперь родитель вашего sleep 60
. Чтобы они были на одном уровне в pstree
вывод, просто фон sleep 120
так же, как вы делаете sleep 60
вместо того exec
это.