Форкировать процесс внутри скрипта оболочки 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об этом.