Wie überwacht man einen Prozess und plant einen regelmäßigen Neustart?

Wie überwacht man einen Prozess und plant einen regelmäßigen Neustart?

Ich führe einen Prozess aus, der manchmal abstürzt und manchmal einfriert. Ich habe Supervise verwendet, damit er automatisch neu gestartet wird, wenn er abstürzt. Wenn er jedoch einfriert, bleibt er eingefroren, bis ich wieder vor dem Computer sitze. Ich hätte gerne ein Tool, das ihn neu startet, wenn er abstürzt, das aber auch so konfiguriert werden kann, dass es regelmäßig beendet und neu gestartet wird, sodass er, wenn er einfriert, nicht länger als eine bestimmte Zeitspanne eingefroren bleibt.

Welches Werkzeug würde wer vorschlagen?

Danke

Antwort1

Wenn Sie möchten, können Sie hierfür cron verwenden ...

sudo crontab -e

* /5 * * * pkill -9 <your process name here> ; <your process name here>

Würde es alle 5 Stunden beenden und neu starten. Weitere Beispiele ...Cron-Beispiele

Antwort2

Ich habe versucht, Supervise von zu verwendendaemontoolsmit einer Crontab:

Zunächst beginne ich mit

supervise /fullpath

und ich verwende diese Crontab:

0 23 * * * svc -d /fullpath
2 23 * * * svc -k /fullpath
5 23 * * * svc -u /fullpath

Dabei ist fullpath das Verzeichnis, das die Datei „run“ enthält, die meinen Prozess startet. Der schwierige Teil ist, dass die Datei mit folgendem enden sollte:

exec java ...

Normalerweise starte ich die Anwendung mit einem Skript, aber wenn ich dieses Skript in die Datei „run“ lege, sendet es bei der Ausführung von svc das Signal an das Skript und der Java-Prozess wird weiter ausgeführt. Ich habe eine Kopie des Skripts erstellt und sie so geändert, dass sie den Aufruf an Java mit allen Parametern ausgibt, und habe dies in die Datei „run“ kopiert.

verwandte Informationen