Wie starte ich nur bestimmte Prozesse mit Supervisorctl neu?


107

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:


177

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

47
Es ist erstaunlich, wie trivial es war, herauszufinden, dass ein Doppelpunkt angehängt werden muss, wenn Befehle an eine Prozessgruppe ausgegeben werden. Danke dir.
Mafrose

4
Einverstanden. Ich denke supervisorctl restart foo:*macht klarer, was passiert.
Tom

Um die Frage des OP direkt zu beantworten, können Sie einen bestimmten Prozess nicht direkt neu starten. Sie können nur Gruppen neu starten, für die ein Gruppen-Tag erforderlich ist.
Cerin

@Cerin Aus meinen eigenen Tests bin ich genau zu dem gleichen Schluss gekommen. Anekdotisch gesprochen, habe ich eine Gruppe am Ende von .conf-Dateien gesehen, die alle Prozesse enthalten. Als wiederholte Beobachtung ergab dies keinen Sinn. Jetzt macht es vollkommen Sinn :)
AlanSE

Du hast meinen Tag gemacht :)
Summe

3

Da supervisorctlmehrere 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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.