2013-09-05 20 views
8

Mam następujący problem:Supervisord spawns tylko 1 instancja

Chcę uruchomić skrypt php jako pracownik mechanik, lub jako 5 pracowników, aby być dokładnym. To jest mój supervisord.conf-dodatek:

[program:gearman-test-worker] 
process_name=%(program_name)s_%(process_num)02d 
command=/usr/bin/php /path/to/gearman-jobs/worker.php 
numprocs=5 
directory=/path/to/gearman-jobs/ 
stdout_logfile=/var/log/gearman-job-server/supervisord.log 
environment=GEARMAN_USER=gearman 
autostart=true 
autorestart=true 
user=gearman 
stopsignal=KILL 

Kiedy zacznę go supervisord -n (lub w trybie demona) będzie tarło tylko 1 instancję zamiast 5. wiadomości będą wyglądać dobrze

[[email protected] gearman-jobs]# supervisord -n 
2013-09-03 14:24:58,775 CRIT Supervisor running as root (no user in config file) 
2013-09-03 14:24:58,789 INFO /var/tmp/supervisor.sock:Medusa (V1.1.1.1) started at Tue Sep 3 14:24:58 2013 
     Hostname: <unix domain socket> 
     Port:/var/tmp/supervisor.sock 
2013-09-03 14:24:58,850 CRIT Running without any HTTP authentication checking 
2013-09-03 14:24:58,850 INFO supervisord started with pid 8722 
2013-09-03 14:24:58,853 INFO spawned: 'gearman-test-worker' with pid 8723 
2013-09-03 14:24:59,858 INFO success: gearman-test-worker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 

i brak podpowiedzi, dlaczego pojawia się tylko jedna instancja. Możesz pomóc?

+0

Nawiasem mówiąc, utworzenie 5 pod-sekcji programu i usunięcie parametru numprocs prowadzi do prawidłowego odrodzenia pracowników. –

Odpowiedz

9

Myślę, że problem jest dość prosty, element konfiguracji "numprocs" wprowadzono dopiero w wersji 3.0, zobacz http://supervisord.org/configuration.html.

Udało mi się zduplikować twój problem w systemie CentOS 6.x, który znacznie opóźnił się pod względem wydań.

# supervisord -n 
2013-09-14 17:19:52,708 CRIT Supervisor running as root (no user in config file) 
2013-09-14 17:19:52,724 INFO /var/tmp/supervisor.sock:Medusa (V1.1.1.1) started at Sat Sep 14 17:19:52 2013 
    Hostname: <unix domain socket> 
    Port:/var/tmp/supervisor.sock 
2013-09-14 17:19:52,809 CRIT Running without any HTTP authentication checking 
2013-09-14 17:19:52,809 INFO supervisord started with pid 21521 
2013-09-14 17:19:52,817 INFO spawned: 'gearman-test-worker' with pid 21522 
2013-09-14 17:19:53,820 INFO success: gearman-test-worker entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 

# rpm -qa | grep supervisor 
supervisor-2.1-8.el6.noarch 

# uname -a 
Linux dev26.sumilux.com 2.6.32-279.5.1.el6.i686 #1 SMP Tue Aug 14 21:14:52 UTC 2012 i686 i686 i386 GNU/Linux 

Gdybym uaktualnić pakiet administratora do 3.x (właściwie przełączeniem starożytnego systemu Fedora), wszystko działa zgodnie z oczekiwaniami (I set 3 robotnicy zamiast 5).

# supervisord -n 
2013-09-14 17:24:56,205 CRIT Supervisor running as root (no user in config file) 
2013-09-14 17:24:56,251 INFO RPC interface 'supervisor' initialized 
2013-09-14 17:24:56,252 CRIT Server 'unix_http_server' running without any HTTP authentication checking 
2013-09-14 17:24:56,252 INFO supervisord started with pid 20889 
2013-09-14 17:24:57,258 INFO spawned: 'gearman-test-worker_00' with pid 20890 
2013-09-14 17:24:57,263 INFO spawned: 'gearman-test-worker_01' with pid 20891 
2013-09-14 17:24:57,269 INFO spawned: 'gearman-test-worker_02' with pid 20892 
2013-09-14 17:24:58,271 INFO success: gearman-test-worker_00 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2013-09-14 17:24:58,271 INFO success: gearman-test-worker_01 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 
2013-09-14 17:24:58,272 INFO success: gearman-test-worker_02 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs) 

# rpm -qa | grep supervisor 
supervisor-3.0-0.5.a10.fc14.noarch 
+0

dzięki! Nie patrzyłem nawet na numery wersji. Na razie użyję teraz 5 podsekcji. –