如何使用supervisorctl仅重启某些进程?

时间:2012-02-15 21:14:15

标签: supervisord

我正在使用supervisord运行一些进程,名为process1,process2,...,process8。如果我想重启进程{1-4},我该如何使用supervisorctl?

2 个答案:

答案 0 :(得分:156)

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

答案 1 :(得分:1)

由于supervisorctl在命令行上接受多个进程,因此您可以利用shell括号扩展(例如,在Bash中)来控制多个进程:

supervisorctl restart process{1..4}

被外壳扩展

supervisorctl restart process1 process2 process3 process4

就像您已经明确键入一样。