Супервизор добавляет несколько процессов для PHP и Gearman

Недавно я создал Ubuntu Natty с PHP5-FPM, Gearman и Supervisor. Я редактировал конфигурацию Supervisard для запуска рабочего Gearman.

[program:gearman] command=/usr/bin/php php_gearman_worker.php numprocs=1 directory=/root/sandbox stdout_logfile=/root/sandbox/supervisord.log environment=GEARMAN_USER=gearman autostart=true autorestart=true user=gearman 

Вот соответствующая информация (показывающая только процессы gearmand и php), когда я lsof -i -P прежде чем запускать lsof -i -P :

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gearmand 29314 gearman 6u IPv4 328139 0t0 TCP localhost:4730 (LISTEN) 

И вот что я получаю, когда lsof -i -P после /etc/init.d/supervisor stop && /etc/init.d/supervisor start .

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gearmand 29314 gearman 6u IPv4 328139 0t0 TCP localhost:4730 (LISTEN) gearmand 29314 gearman 11u IPv4 328206 0t0 TCP localhost:4730->localhost:39072 (ESTABLISHED) php 29571 gearman 4u IPv4 329744 0t0 TCP localhost:39072->localhost:4730 (ESTABLISHED) 

Я не вижу никаких записей для супервизора, должен ли я видеть супервизор как один из команд ?!

Во всяком случае, когда я останавливаюсь и снова запускаю (или перезапускаю) супервизор:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gearmand 29314 gearman 6u IPv4 328139 0t0 TCP localhost:4730 (LISTEN) gearmand 29314 gearman 11u IPv4 328206 0t0 TCP localhost:4730->localhost:39072 (ESTABLISHED) gearmand 29314 gearman 12u IPv4 329754 0t0 TCP localhost:4730->localhost:51570 (ESTABLISHED) php 29571 gearman 4u IPv4 329744 0t0 TCP localhost:39072->localhost:4730 (ESTABLISHED) php 29619 gearman 4u IPv4 327233 0t0 TCP localhost:51570->localhost:4730 (ESTABLISHED) 

Похоже, что каждый раз, когда я останавливаюсь и начинаю супервизор, он создает другой php-процесс, а затем другой. Только когда я перезапускаю передачу и вернусь к нормальной работе, то есть /etc/init.d/gearman-job-server stop && /etc/init.d/gearman-job-server start .

Мне кажется ненормальным, что, когда я останавливаю супервизор, он должен остановиться

Так работает суперсайдер ?! Есть ли способ предотвратить это?

Заранее спасибо.

РЕДАКТИРОВАТЬ

Я узнал, что вызвало проблему. Это был небольшой конфликт с supervisord.conf и моим скриптом init.

У моего файла supervisord.conf были следующие настройки:

 pidfile=/tmp/supervisord.pid 

Но мой сценарий инициализации в /etc/init.d/supervisord имел следующий параметр:

 NAME=supervisord PIDFILE=/var/run/$NAME.pid 

Поэтому я просто изменил настройку в файле supervisord.conf, чтобы соответствовать тому, что было в моем скрипте инициализации.

Кроме того, я добавил stopsignal=KILL в конфигурацию программы в моем конфигурационном файле supervisord (supervisord.conf).

Благодаря Миназу за направление.

Solutions Collecting From Web of "Супервизор добавляет несколько процессов для PHP и Gearman"

Я всегда включаю опцию stopignal config для моих конфигурационных файлов диспетчера. Это позволяет убить процесс редуктора при запросе остановки. Попробуй это:

 [program:gearman] command=/usr/bin/php php_gearman_worker.php numprocs=1 directory=/root/sandbox stdout_logfile=/root/sandbox/supervisord.log environment=GEARMAN_USER=gearman autostart=true autorestart=true user=gearman stopsignal=KILL