Automatischer Neustart des Prozesses bei Absturz

Automatischer Neustart des Prozesses bei Absturz

Ich habe einen Java-Serverprozess, der nativen Code ausführt, und es besteht immer die Möglichkeit, dass der gesamte Prozess aufgrund eines Problems im nativen Code abstürzt. Gibt es einen Mechanismus, den *nix-Betriebssysteme bieten, mit dem ich den Prozess neu starten lassen kann, wenn er abnormal existiert (Exit-Status != 0)?

Gibt es ein Tool/Dienstprogramm, das diese Aufgabe für alle Arten von Prozessen automatisieren kann, indem es gleichzeitig ein gewisses Maß an Kontrolle/Konfiguration bereitstellt?

Antwort1

Es gibt einige Optionen. Sie können es immer in ein kurzes Shell-Skript wie dieses einbinden: -

#!/bin/sh

RC=1
while [ $RC -ne 0 ]; do
   ./my-java-app
   RC=$?
done

Alles andere als elegant, könnte aber ausreichen.

Antwort2

Was Sie suchen, nennt man normalerweise Prozessüberwachung oderProzessüberwachung. Es gibt viele Tools, die dies tun, normalerweise als Teil eines unterschiedlichen Funktionsumfangs.Emporkömmlingwird in der Linux-Welt immer häufiger für Systemdienste verwendet.Überwachenist das Erste, was ich für ein Programm versuchen würde, das nicht von Root gestartet wird, aber es gibt viele Alternativen.

verwandte Informationen