2014-07-02 9 views
18

Wenn Sie einen Prozess mit Supervisord starten, ist es in "START" Status, wenn es Probleme bekommt, wird es in "BACKOFF" Status, wenn ein Autorestart auf True gesetzt ist.So erzwingen Supervisord einen Prozess in BACKOFF Status zu stoppen

Ich möchte nicht warten, bis "startretries" versucht wird, ich möchte den Neustart manuell mit Supervisorctl stoppen. Die einzige Möglichkeit, dies zu tun, besteht darin, den gesamten Supervisord Service zu stoppen und neu zu starten (jeder Prozess geht in den Status "STOPPED", wenn kein Autostart stattfindet).

Gibt es einen besseren Weg dazu (erzwinge den Status "STOPPED" vom Status "BACKOFF"), da ich andere Prozesse im Supervisord verwaltet habe, die ich nicht stoppen möchte?

Wenn ich versuche, es zu stoppen mit

supervisorctl stop process 

ich

FAILED: attempted to kill process with sig SIGTERM but it wasn't running 

Wenn ich versuche, es zu starten mit

supervisorctl start process 

ich

process: ERROR (already started) 

Natürlich könnte ich den Autorestart deaktivieren, aber es kann nützlich sein, eine Problemumgehung ist es, die Startretries zu begrenzen, gibt es eine bessere Lösung?

Antwort

3

Hey, das vielleicht für Sie helfen:

Wenn ein autorestarting Prozess im BACKOFF Zustand befindet, es automatisch neu gestartet von supervisord sein wird. Es schaltet zwischen AUSGANGS und BACKOFF Zustände, bis sich herausstellt, dass es nicht gestartet werden kann, weil die Anzahl der startretries das Maximum überschritten hat, an welchem ​​Punkt es den fatalen Zustand übergehen wird. Jeder Neustart wird immer länger dauern.

so müssen Sie den BACKOFF-Prozess nicht manuell stoppen. Wenn Sie nicht zu lange warten möchten, ist es besser, eine kleine Anzahl an Startries zu setzen.

siehe weitere Informationen hier: http://supervisord.org/subprocess.html

GOOD LCUKY

+6

Dies wirklich nicht die Frage - Sie sagten ihm einfach, er muss nicht tun, was er fragte. "Sie müssen den BACKOFF-Prozess nicht manuell stoppen". fragt er, wie er vom BACKOFF- in den STOPPED-Zustand wechseln kann, damit er sicher sein kann, dass der Prozess nicht wieder startet. – keen

-3

Verwenden Sie den folgenden Befehl ein Supervisor zu zwingen, einen Prozess in der BACKOFF Zustand zu stoppen.

supervisorctl stop <gname>:* 
Verwandte Themen