我正在使用supervisord运行一些进程,名为process1,process2,...,process8。如果我想重启进程{1-4},我该如何使用supervisorctl?
答案 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
就像您已经明确键入一样。