私は、process1、process2、...、process8という名前のsupervisordを使用していくつかのプロセスを実行しています。プロセス{1-4}を再起動したい場合、どのようにsupervisorctlでそれを行うことができますか?
スーパーバイザーは プロセスグループ をサポートします。プロセスを名前付きグループにグループ化し、それらをまとめて管理できます。
[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
はコマンドラインで複数のプロセスを受け入れるため、シェルブレース拡張(Bashなど)を利用して複数のプロセスを制御できます。
supervisorctl restart process{1..4}
シェルによってに展開されます
supervisorctl restart process1 process2 process3 process4
明示的に入力したかのように。