我有以下问题:
我想运行一个PHP脚本作为齿轮工作者,或者作为5个工人来准确.这是我的supervisord.conf-补充:
[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
当我启动它supervisord -n(或在守护进程模式下)它只会产生1个实例而不是5个.这些消息看起来很好
[root@pc113 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)
并没有暗示为什么它只产生一个单一的实例.你能帮我吗?
我认为问题很简单,“numprocs”配置项仅在v3.0中引入,见
http://supervisord.org/configuration.html.
我能够在库存CentOS 6.x系统上复制你的问题,这在发布方面明显落后.
# 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
如果我将主管包升级到3.x(实际上是通过切换到古老的Fedora系统),一切都按预期工作(我设置了3个工人而不是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,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