Ich habe einen Nginx-Webproxy, einen Gunicorn-Webserver und eine Python- / Kolben-Web-App. Der Gunicorn-Prozess ist anscheinend gestorben, und ich möchte dies in Zukunft verbessern, indem ich mir ein Dienstprogramm anschaue, das den Gunicorn-Prozess überwachen und neu starten kann, falls er erneut abstürzt.
Ich habe einige gefunden, die den Job erledigen können:
- Emporkömmling
- starte es
- Supervisor
- daemontools
- viel mehr
Gibt es einen umfassenden Artikel, in dem die verschiedenen Dienstprogramme zum Überwachen und Neustarten eines Prozesses verglichen und gegenübergestellt werden?
upstart
supervisord
daemontools
runit
Matthew Moisen
quelle
quelle
Antworten:
runit
ist ein Nachfolger vondaemontools
(beide sind geschrieben inc
)supervisord
verwendetpython
.Ich habe ungefähr 10 Monate lang
runit
mitsocklog
demselben Autor in Alpine Linux-lxc
Containern gearbeitet, umweb
/database
und verschiedene andere Dienste zu verwalten . Es ist leicht, einfach zu handhaben und ich hatte keine Service-Ausfälle. Der Protokollierungsdämon wird auch als eigener Benutzer ausgeführt und nicht,root
was nett ist.voidlinux wird
runit
alsinit
System und auch zur Überwachung von Diensten verwendet (durchsuchen Sie den Paketbaum nachrun
Dateien, um Beispiele fürrunit
Skripte zu finden).quelle
Wenn Ihre Distribution Upstart verwendet, fahren Sie damit fort. Es bietet grundlegende Unterstützung für den Neustart von Jobs, enthält jedoch Einschränkungen, die einen Neustart der Schleife verhindern können, wie von @EEAA erwähnt.
Wenn Ihr Betriebssystem ein anderes Init-Programm verwendet, ändern Sie es nicht. Bei den anderen Tools, die Sie erwähnt haben, kann ich Ihnen nicht wirklich helfen, da ich normalerweise Ubuntu verwende, auf dem Upstart noch vorhanden ist (Stand der neuesten LTS). Ich habe also wenig damit zu tun. Es ist jedoch keine schwierige Aufgabe, ein einfaches Skript zu erstellen, das von cron einmal pro Minute (oder häufiger in einer Schleife) ausgeführt wird und das überprüfen kann, ob eine PID vorhanden ist, und bei einem Fehler einen Neustart auslösen kann.
quelle