- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有以下问题:
我想以 gearman worker 的身份运行 php 脚本,或者准确地说,以 5 个 worker 的身份运行。这是我的 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
如果我将 supervisor 包升级到 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, 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
关于php - Supervisord 仅生成 1 个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18631983/
我在 Supervisord 的程序部分使用了环境变量,它们工作得很好: [program:some_prog] command=%(ENV_env_var_name)s/... 我不知道如何在 [s
我们有一个问题,supervisord 无法同时处理 200 多个进程 - 添加更多进程会导致它在启动时死亡。 任何人都对 supervisord 和大量托管流程有任何经验? 最佳答案 想通了 - 这
假设我已经在我的机器上运行了一个 supervisord 进程。如何为 supervisord 添加一个新的服务/进程来监控?例如,假设我有这个简单的 .conf 文件: 运行-suman-daemo
我正在使用Supervisord持续运行一些索引程序。每次运行索引器时,它都会获取一组特定的文档,对它们进行索引,然后结束。然后,该 Supervisord 进程将生成另一个相同的索引器程序,并且该索
我使用 supervisord 作为 Docker 容器的入口点,如 https://docs.docker.com/articles/using_supervisord/ 中所述, 我希望将所有日志
我正在使用 supervisord 来管理 docker 容器中的多个进程。然而,一个进程始终是“主人”,而其他进程是监视和报告进程。如果主进程在 startretries 后无法启动,我想做的是终止
移至使用 supervisod作为过程控制系统。 我有一个 长并在我的 supervisord.conf 中重复 ENVIRONMENT 配置,为很多进程设置很多环境变量。我需要在一个地方定义它并重用
我正在尝试编写一个 supervisord.conf 来启动一个 django fastcgi 进程。唯一的问题是,当我执行我的 fastcgi 命令时,它会生成一个 fastcgi 进程并立即在主管
程序优先级是否决定启动顺序?即 baz然后 bar ? 如果我有: [group:foo] programs=bar,baz 和: [program:bar] command=/path/to/bar
问题 我无法让主管正确跟踪正在运行的进程。我正在运行3.0a8版本。 这是我的supervisor.conf文件 [inet_http_server] port=9011 [supervisord]
有没有办法从内到外重启supervisor? 我正在通过主管运行脚本,以更新树莓派上的 html 和视频。但在某些时候,我必须在主管上运行的 2 个进程之间切换。所以我将必须结束的进程的配置重命名为“
我有 supervisord安装在我的 Ubuntu 10.04 上,它持续运行一个 Java 进程,并且应该在它以某种方式死亡或崩溃时修复(重新加载)进程。 在我的 htop我向那个 发送 SIGK
我正在使用 supervisord 来管理一堆进程。是否可以使用 supervisorctl 向这些进程发送任意信号而不实际停止它们并设置停止信号? 最佳答案 直到 3.2.0(2015 年 11 月
我有一个开发服务器,我经常通过 Git 推送代码更改。每次推送后,我需要手动登录服务器并重新启动主管进程。 有没有办法让 Supervisor 监视文件系统目录的更改并在更改时重新加载进程? 最佳答案
我有一组由 supervisord 管理的程序。有一个程序,我们称它为 myprogram,我需要运行 15 个实例。使用 numprocs 参数很容易。 有没有办法将进程号作为命令行参数传递给程序,
可以说我在主管中有两个程序。有没有一种方法可以有条件地运行第一个程序(后台进程)而不必将其移动到单独的脚本文件中? [supervisord] nodaemon=true logfile=/tmp/s
当您使用supervisor启动流程时,它处于“正在启动”状态,如果遇到麻烦,并且将自动重新启动设置为true,那么它将进入“退避”状态。 我不想等待尝试“startretries”,我想使用supe
是否可以在supervisord启动脚本中使用本地主机名?我需要它将 jmx 主机传递给 java 程序。示例: command=HOSTNAME=foo.bar /usr/local/rvm/bin
我正在使用supervisord运行一些进程,名为process1、process2、...、process8。如果我想重新启动进程{1-4},我该如何使用supervisorctl来做到这一点? 最
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我是一名优秀的程序员,十分优秀!