Ich führe einige Prozesse mit Supervisord aus, mit dem Namen process1, process2, ..., process8. Wie kann ich das mit Supervisorctl tun, wenn ich den Prozess {1-4} neu starten möchte?
Ich führe einige Prozesse mit Supervisord aus, mit dem Namen process1, process2, ..., process8. Wie kann ich das mit Supervisorctl tun, wenn ich den Prozess {1-4} neu starten möchte?
Antworten:
Supervisord unterstützt Prozessgruppen . Sie können Prozesse in benannten Gruppen gruppieren und gemeinsam verwalten.
[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
Der Befehl Supervisorctl kann mit einem Gruppennamen aufgerufen werden:
supervisorctl restart foo:
sowie mit mehreren Prozessnamen:
supervisorctl restart foo:cat1 cat2
supervisorctl restart foo:*
macht klarer, was passiert.
Da supervisorctl
mehrere Prozesse in der Befehlszeile akzeptiert werden, können Sie die Erweiterung der Shell-Klammer (z. B. in Bash) nutzen, um mehrere Prozesse zu steuern:
supervisorctl restart process{1..4}
wird von der Shell in erweitert
supervisorctl restart process1 process2 process3 process4
als ob Sie das explizit abgetippt hätten.