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