私は、supervisordを使用して、process1、process2、...、process8という名前のいくつかのプロセスを実行しています。プロセスを再起動したい場合は{1-4}、supervisorctlでどうすればよいですか?
私は、supervisordを使用して、process1、process2、...、process8という名前のいくつかのプロセスを実行しています。プロセスを再起動したい場合は{1-4}、supervisorctlでどうすればよいですか?
回答:
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
supervisorctl restart foo:*
は何が起こっているかをより明確にすると思います。
以来supervisorctl
、コマンドライン上で複数のプロセスを受け入れ、あなたは複数のプロセスを制御するために、シェルブレース展開(例えばバッシュ中)を利用することができます。
supervisorctl restart process{1..4}
シェルによって展開されます
supervisorctl restart process1 process2 process3 process4
あなたがそれを明示的にタイプしたかのように。