115

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

4

2 回答 2

196

supervisord 支持进程组。您可以将进程分组到命名组并集中管理它们。

[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
于 2012-02-16T11:24:29.210 回答
6

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

supervisorctl restart process{1..4}

由外壳扩展为

supervisorctl restart process1 process2 process3 process4

就好像你已经明确地输入了一样。

于 2018-09-07T00:00:00.620 回答