【问题标题】:Supervisord spawns only 1 instanceSupervisord 仅生成 1 个实例
【发布时间】:2013-09-05 08:58:47
【问题描述】:

我有以下问题:

我想以齿轮工的身份运行一个 php 脚本,或者准确地说是 5 个工人。这是我的supervisord.conf-addition:

[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)

并且没有提示为什么它只产生一个实例。你能帮忙吗?

【问题讨论】:

  • 顺便说一下,创建 5 个程序小节并删除 numprocs 参数会导致工人正确生成。

标签: php supervisord gearman


【解决方案1】:

我觉得问题挺简单的,“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

如果我将 supervisor 包升级到 3.x(实际上是通过切换到一个古老的 Fedora 系统),一切都会按预期工作(我设置了 3 个 worker 而不是 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

【讨论】:

  • 谢谢!我什至没有看版本号。我现在只使用我的 5 个小节。
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多