29

所以我正在设置 supervisord 并尝试控制多个进程并且一切正常,现在我想设置一个组,以便我可以启动/停止不同的进程集,而不是全部或全部。这是我的配置文件的片段。

[group:tapjoy]
programs=tapjoy-game1,tapjoy-game2

[program:tapjoy-game1]
command=python tapjoy_pinger.py -g game1
directory=/go/here/first
redirect_stderr=true
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

[program:tapjoy-game2]
command=python tapjoy_pinger.py -g game2
directory=/go/here/first
redirect_stderr=true
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

现在从阅读文档来看,这在我看来应该可以工作,但是调用 supervisorctl restart tapjoy: 没有任何作用。

我错过了什么吗?

添加星号不会出错,但也不会执行任何操作。

supervisorctl restart tapjoy:*
supervisorctl status
tapjoy_game1                     RUNNING    pid 4697, uptime 1 day, 21:56:23
tapjoy_game2                     RUNNING    pid 4698, uptime 1 day, 21:56:23
tapjoy_game3                     RUNNING    pid 4699, uptime 1 day, 21:56:23
tapjoy_game4                     RUNNING    pid 4700, uptime 1 day, 21:56:23
tapjoy_game5                     RUNNING    pid 4701, uptime 1 day, 21:56:23
4

2 回答 2

36

您需要使用*通配符来选择组中的所有程序:

supervisorctl restart tapjoy:*

注意:您的 shell 可能要求您转义*,通常使用\*

于 2012-10-17T13:12:10.987 回答
3

我知道这是一个旧线程,但我遇到了同样的问题,在这里找到答案会很好。因此,以供将来参考,而不是:

program=tapjoy-game1,tapjoy-game2

你需要:

programs=tapjoy-game1,tapjoy-game2

文档:http ://supervisord.org/configuration.html#group-x-section-values

于 2014-10-18T11:21:59.760 回答