【发布时间】:2012-03-07 06:33:47
【问题描述】:
我正在使用 supervisord 运行几个进程,命名为 process1、process2、...、process8。如果我想重新启动进程{1-4},我该如何使用 supervisorctl?
【问题讨论】:
标签: supervisord
我正在使用 supervisord 运行几个进程,命名为 process1、process2、...、process8。如果我想重新启动进程{1-4},我该如何使用 supervisorctl?
【问题讨论】:
标签: supervisord
supervisord 支持process groups。您可以将进程分组到命名组并集中管理它们。
[unix_http_server]
file=%(here)s/supervisor.sock
[supervisord]
logfile=supervisord.log
pidfile=supervisord.pid
[program:cat1]
command=cat
[program:cat2]
command=cat
[program:cat3]
command=cat
[group:foo]
programs=cat1,cat3
[supervisorctl]
serverurl=unix://%(here)s/supervisor.sock
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
supervisorctl 命令可以用组名调用:
supervisorctl restart foo:
以及多个进程名称:
supervisorctl restart foo:cat1 cat2
【讨论】:
supervisorctl restart foo:* 让正在发生的事情更加清晰。
由于supervisorctl 在命令行上接受多个进程,您可以利用 shell 大括号扩展(例如在 Bash 中)来控制多个进程:
supervisorctl restart process{1..4}
被shell扩展成
supervisorctl restart process1 process2 process3 process4
就好像你已经明确地输入了一样。
【讨论】: