У меня есть коробка Debian, на машине запущен скрипт php.
Как я могу его контролировать, и когда скрипт php умирает, перезапускать его автоматически?
Если это отдельный скрипт PHP, вас может заинтересовать DAEMON Tools (Автор DJ Бернстайн, известный QMail). Вместо того, чтобы запускать службы напрямую, их запускает демон supervise. Каждый раз, когда он обнаруживает, что одна из служб прерывается по какой-либо причине, он пытается перезапустить ее.
Монит также хороший инструмент для такого рода вещей.
Вы также можете запустить cron
задание каждую минуту и запускать скрипт, если его нет в выводе чего-то вроде ps aux | grep <scriptname> | grep -v grep
Ты можешь использовать duende
, из марады слава. Из его справочная страница:
Если родительский duende обработает сигнал HUP, duende перезапустит дочерний процесс. Если демонизированный или регистрирующий процесс получил неотловленный сигнал HUP или завершился с кодом выхода 8, duende перезапустит процесс. Если демонизированный процесс или процесс регистрации завершится по какой-либо другой причине, duende отправит процессу регистрации сигнал TERM и завершится. Если родительский процесс duende получает сигнал TERM или INT, duende отправляет все свои дочерние сигналы TERM, а затем завершает работу.