Upstart – Anzahl der Supervisord-Forks > 2 (Supervisord kann beim Booten nicht gestartet werden)

Upstart – Anzahl der Supervisord-Forks > 2 (Supervisord kann beim Booten nicht gestartet werden)

ich versuche, Upstart zu verwenden, damit Supervisord beim Booten automatisch gestartet wird. Mein Supervisord befindet sich in einer virtuellen Umgebung.

Ich habe es so konfiguriert, dass es mit dem Parameter -n im Vordergrundmodus ausgeführt wird. Beim manuellen Start funktioniert es, beim Booten lässt es sich jedoch nicht starten.

Befolgen Sie die Anleitung hier http://upstart.ubuntu.com/cookbook/#how-to-establish-fork-count

Ich stelle fest, dass supervisord 37-mal eine Aufspaltung durchführt.

> ~/projects/bleh_app$ sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf &
[1] 5662

> ~/projects/bleh_app$ ps -ef | grep strace
root      5662  5447  0 21:02 pts/0    00:00:00 sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
root      5663  5662 36 21:02 pts/0    00:00:03 strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf
bleh     5703  5447  0 21:02 pts/0    00:00:00 grep --color=auto strace

> ~/projects/bleh_app$ sudo killall -9 strace
[1]+  Exit 137                sudo strace -o /tmp/strace.log -fFv /home/bleh/py_venvs/supe/bin/supervisord -c /home/bleh/projects/bleh_app/supervisord/supervisord.conf

> ~/projects/bleh_app$ sudo egrep "\<(fork|clone)\>\(" /tmp/strace.log | wc | awk '{print $1}'
37

Einige Fragen:
* Irgendwelche Ideen, warum es beim Booten nicht im Vordergrundmodus startet?
* Bestimmen Sie die Anzahl der Forks richtig?
* Irgendwelche besseren Vorschläge, wie man Supervisord mit Upstart startet?

Antwort1

oh Mann ...
ich bin von hier aus diesen Weg eingeschlagen:
So starten Sie supervisord automatisch unter Linux (Ubuntu)
und insbesondere diese Antwort https://serverfault.com/a/115259/60345

"oh, toller Emporkömmling als Supervisor … neeeeein Problem"

Nein. Ich kann Supervisord problemlos manuell starten lassen, aber ich kann es nicht automatisch beim Booten starten lassen. Beim Debuggen scheint Supervisord zu starten, aber dann wird sofort ein SIGTERM gesendet, um sich selbst zu beenden. Ich weiß nicht, ob es daran liegt, dass es im Vordergrund läuft.
Die obige Frage war ursprünglich, ob ich es mit expect fork oder daemon ausführen kann (was ich nie herausgefunden habe).

8 Stunden meines Lebens später finde ich dies
http://upstart.ubuntu.com/cookbook/#runlevels

Sie möchten im Wesentlichen, dass Ihre Upstart-Konfigurationsdatei folgendermaßen aussieht:

description     "supervisord"

start on (filesystem and static-network-up)
stop on runlevel [!2345]

respawn

exec /<path to>/supervisord -n -c /<path to>/supervisord.conf

besonders zu beachten:
stop on runlevel [!2345]
vs
stop on runlevel [!345]

Ich wollte diese Antwort im anderen Thread posten, aber dieser ist gesperrt =(

verwandte Informationen