Supervisorctl остановить все = остановленные процессы?

2631
Lee Benson

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

4

1 ответ на вопрос

5
ybart

I had the same problem using CentOS 6 with supervisor 2. I will assume you run a similar configuration.

In my case, upgrading solved the problem. However, there are no available up to date supervisord binary package for my system. So here is how I have updated:

First, download the following source RPM supervisor-3.0-0.5.a10.fc16.src.rpm (available here: http://dl.fedoraproject.org/pub/fedora/linux/releases/16/Everything/source/SRPMS/supervisor-3.0-0.5.a10.fc16.src.rpm). If you try a more recent source package, the build might fail and you might run into a dependencies hell.

Install rpm-build package using:

yum install rpm-build 

Then try to build using the following command,

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

If this fails, install any needed dependency using yum.

yum install <dependencies> 

Then try to build again:

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

You will then be able to install supervisord and the problem will disappear !

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