Supervisorctl stop all = angehaltene Prozesse?

2691
Lee Benson

Ich führe mehrere PHP-CLI-Skripts aus und überwache sie über Supervisor.

Wenn ich sie supervisorctlzum Überwachen verwende, sehen die Skripte folgendermaßen aus:

cleanup RUNNING pid 1805, uptime 0:00:41 postsales RUNNING pid 1825, uptime 0:00:10 rebills RUNNING pid 1823, uptime 0:00:19 subscribers RUNNING pid 1827, uptime 0:00:10 

Wenn ich jedoch einen ausstelle stop all, friert Supervisorctl ein und ich muss STRG + C drücken, um den Vorgang zu beenden.

Beim nächsten Lauf supervisorctlsieht der Status dann so aus:

cleanup RUNNING pid 1935, uptime 0:00:44 postsales RUNNING pid 1953, uptime 0:00:05 rebills STOPPED Jul 19 12:23 PM subscribers RUNNING pid 1951, uptime 0:00:05 

dh nur EINS der Prozesse wurde angehalten und die anderen laufen weiter.

Wenn ich mehr stop allBefehle ausstelle, passiert dasselbe - ein Skript versucht zu beenden und der Rest hängt.

Ich habe versucht, die Datei supervisord.conf so zu ändern, dass sie verwendet wird, STOPSIGNAL=KILLfalls das PHP-Skript das Standard-TERM-Signal nicht ordnungsgemäß verarbeitet, aber dasselbe passiert.

Gibt es eine Möglichkeit, Supervisorctl zuverlässig mit meinen Skripts zu verwenden, um sie nach Belieben ordnungsgemäß zu starten und zu stoppen?

4

1 Antwort auf die Frage

5
ybart

Ich hatte das gleiche Problem bei der Verwendung von CentOS 6 mit Supervisor 2. Ich gehe davon aus, dass Sie eine ähnliche Konfiguration ausführen.

In meinem Fall löste das Upgrade das Problem. Es gibt jedoch kein aktuelles Supervisord-Binärpaket für mein System. So habe ich ein Update gemacht:

Laden Sie zunächst das folgende Quell-RPM herunter supervisor-3.0-0.5.a10.fc16.src.rpm(hier verfügbar: http://dl.fedoraproject.org/pub/fedora/linux/releases/16/Everything/source/SRPMS/supervisor-3.0-0.5.a10.fc16.src.rpm) ). Wenn Sie ein neueres Quellpaket verwenden, schlägt der Build möglicherweise fehl und Sie werden möglicherweise in eine Abhängigkeit geraten.

rpm-buildPaket installieren mit:

yum install rpm-build 

Versuchen Sie dann mit dem folgenden Befehl zu bauen:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm 

Wenn dies fehlschlägt, installieren Sie die erforderliche Abhängigkeit mithilfe von yum.

yum install <dependencies> 

Versuchen Sie dann erneut zu bauen:

rpmbuild --rebuild supervisor-3.0-0.5.a10.fc16.src.rpm 

Sie können dann Supervisord installieren und das Problem wird verschwinden!

yum install ~/rpmbuild/RPMS/noarch/supervisor-3.0-0.5.a10.el6.noarch.rpm