4

Я запускаю несколько сценариев 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 с моими сценариями для правильного запуска и остановки по желанию?

1 ответ1

5

У меня была такая же проблема при использовании CentOS 6 с супервизором 2. Я предполагаю, что вы запускаете аналогичную конфигурацию.

В моем случае обновление решило проблему. Однако для моей системы нет доступных бинарных пакетов супервизора. Итак, вот как я обновил:

Сначала загрузите следующий исходный RPM supervisor-3.0-0.5.a10.fc16.src.rpm (доступно здесь: http://dl.fedoraproject.org/pub/fedora/linux/releases/16/Everything/source/SRPMS/supervisor-3.0-0.5.a10.fc16.src.rpm). Если вы попробуете более свежий пакет с исходным кодом, сборка может завершиться неудачей, и вы можете столкнуться с адом зависимостей.

Установите пакет rpm-build , используя:

yum install rpm-build

Затем попробуйте собрать с помощью следующей команды:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

Если это не удалось, установите любую необходимую зависимость с помощью yum.

yum install <dependencies>

Затем попробуйте собрать снова:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm

После этого вы сможете установить supervisord, и проблема исчезнет!

yum install ~/rpmbuild/RPMS/noarch/supervisor-3.0-0.5.a10.el6.noarch.rpm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .