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.