Я ищу сценарий оболочки, который я могу выполнить и который запустит программу, которая должна работать бесконечно много времени, пока я не решу ее убить.
Я уже пробовал nohup, screen, disown (в оболочке netcat / bin / sh), но все они не справились с этой задачей.
Программа, которая должна быть запущена, также нуждается в аргументах.
РЕДАКТИРОВАТЬ: Комментарии попросили меня упомянуть проблемы с методами, которые я попробовал.
nohup: закрытие окна NetCat также закрывает процесс
bg: При запуске NetCat сообщает: «Нет управления заданиями в этом сеансе»
disown: тот же результат, что и у nohup
экран: «Должен быть подключен к терминалу»
Ответы:
Замените "bash foo.sh" на то, что вам нужно для запуска. не переживет перезагрузки.
редактировать: Вы можете напечатать $$ в файл в другом, до exec, если вы хотите захватить pid. Вы также можете просто выполнить вывод PS для уничтожения на основе pid.
источник
Во-первых, сценарий оболочки не может предотвратить завершение какого-либо (фонового) процесса, если ОС решит его убить или процесс умирает. С учетом сказанного, вот предложение о том, как запустить снова услуга. Это грубо, но просто.
Создайте файл «семафор» и используйте его, чтобы разорвать вечный цикл, который перезапускает какую-то работу.
Исходный файл в вашей оболочке и запустить функции. Скрипт может содержать ошибки, но идея должна быть пригодной для использования.
источник