Ну, я в основном стараюсь, чтобы скрипт bash выполнял сценарий узла навсегда. Я сделал следующий Баш скрипта:Сценарий Bash на фоне: как убить дочерние процессы
#!/bin/bash while true ; do cd /myscope/ unlink nohup.out node myscript.js sleep 6 done & echo $! > pid
Я ожидаю, что, когда он работает, он запускает узел с данным сценарием, проверяет, является ли узел выходит, спит в течение 6 секунд, если так и открыть узел. Кроме того, я ожидаю, что он запустится в фоновом режиме и напишет, что это pid (bash pid) в файле под названием pid.
Все описанное выше работает, как ожидается, по-видимому, но я также ожидаю, что когда pid сценария bash будет убит, скрипт узла перестанет работать, я не знаю, почему это имело смысл в моем сознании, но когда дело доходит до практики, это не работает. Сценарий bash действительно убит, но скрипт узла продолжает работать, и это меня волнует.
Я протестировал его в терминале, не отправив скрипт bash на задний план и введя ctrl + c, оба сценария будут убиты.
Я, очевидно, пропустил понимание чего-то на том, как работает фоновый процесс. Ради бога, может ли кто-нибудь мне помочь?
Я бы предпочел держаться подальше от вечно или других третьих лиц, так как я работаю на пи, и каждый байт памяти много для меня значит. Это работает для меня! Благодаря! – tin
Добро пожаловать, помните, чтобы поддержать или отметить, как принято, если это решает вашу проблему. –