Я запускаю несколько сценариев PHP CLI и отслеживаю их через Supervisor.
Когда я использую supervisorctl
для мониторинга их, сценарии выглядят так:
cleanup RUNNING pid 1805, uptime 0:00:41
postsales RUNNING pid 1825, uptime 0:00:10
rebills RUNNING pid 1823, uptime 0:00:19
subscribers RUNNING pid 1827, uptime 0:00:10
Однако, когда я запускаю команду stop all
, supervisorctl зависает, и мне нужно нажать CTRL+C для выхода.
Когда я в следующий раз запускаю supervisorctl
, статус выглядит следующим образом:
cleanup RUNNING pid 1935, uptime 0:00:44
postsales RUNNING pid 1953, uptime 0:00:05
rebills STOPPED Jul 19 12:23 PM
subscribers RUNNING pid 1951, uptime 0:00:05
т.е. только ОДИН из процессов остановился, а остальные продолжают работать.
Если я запускаю больше команд stop all
, происходит то же самое - один скрипт пытается завершиться, а остальные зависают.
Я попытался изменить файл supervisord.conf для использования STOPSIGNAL=KILL
в случае, если скрипт PHP неправильно обрабатывает сигнал TERM по умолчанию, но происходит то же самое.
Есть ли способ надежно использовать supervisorctl с моими сценариями для правильного запуска и остановки по желанию?