GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sicherstellen, dass ein Prozess immer ausgeführt wird?

Ich habe vor einiger Zeit angefangen, Websites mit Cherokee zu hosten. Für externe Quellen (FastCGI usw.) hat es eine Option zum Starten des Prozesses, wenn es keinen finden kann, der auf dem angegebenen Socket oder Port läuft. Das ist großartig, weil es bedeutet, dass PHP oder eine Django-Site automatisch neu gestartet werden, wenn sie herunterfällt (was gelegentlich der Fall ist).

Auf einem neuen Server mit PHP-FPM konnte ich Cherokee nicht verwenden (es hat einen Fehler mit PHP), also bin ich zu NGINX gewechselt. Ich mag NGINX wirklich (wegen seines Konfigurationsstils), aber ich habe ernsthafte Probleme mit Prozessen, die umfallen und nie wieder erscheinen. PHP tut dies manchmal, aber Django-Sites sind eher ein Problem. Ich habe Init-Skripte für sie erstellt und sie werden beim Booten angezeigt, aber das hilft mir nicht, wenn sie zwischen den Neustarts ausfallen.

Ich schätze, ich suche nach einem FastCGI-Proxy. Etwas, das wie Cherokee weiß, welche Prozesse auf welchen Sockets/Ports ausgeführt werden sollen, und sie bei Bedarf neu startet. Gibt es so etwas? Gibt es eine Möglichkeit, dies in NGINX zu integrieren (zur einfacheren Konfiguration)?

Akzeptierte Antwort:

Wie wäre es mit Daemontools und speziell dem Supervise-Tool

supervise überwacht einen Dienst. Es startet den Dienst und startet den Dienst neu, wenn er stirbt. Das Einrichten eines neuen Dienstes ist einfach:Supervise benötigt lediglich ein Verzeichnis mit einem Ausführungsskript, das den Dienst ausführt.


Linux
  1. Umgebung eines laufenden Prozesses ändern?

  2. Benutzer- und Kernelzeit eines laufenden Prozesses abrufen?

  3. Debian – Wie stellt man die exklusive CPU-Verfügbarkeit für einen laufenden Prozess sicher?

  4. Führen Sie das PHP-Skript als Daemon-Prozess aus

  5. MongoDB-Dienst läuft nicht in Fedora

So listen Sie laufende Prozesse in Linux auf

So beenden Sie den laufenden Linux-Prozess auf einem bestimmten Port

Laufende Prozesse

So überprüfen Sie, ob ein bestimmter Dienst unter Ubuntu ausgeführt wird

Linux:in einen Dienst verarbeiten

Der Start oder Neustart des Mongo-Dienstes schlägt immer fehl