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