Richten Sie Wiederherstellungsaktionen ein, die ausgeführt werden, wenn ein Dienst fehlschlägt

10

Ich habe viele unserer benutzerdefinierten schriftlichen Dienste auf Windows-Boxen installiert (egal ob XP, Server, Vista). Ich konfiguriere immer "Neustart des Dienstes" bei 1., 2. und nachfolgenden Fehlern. Aber ich habe diese Arbeit noch nie gesehen; Der Dienst wird einfach gestoppt (aufgrund eines Fehlers oder eines Codes), aber nicht neu gestartet.

Ich habe gerade das Kontrollkästchen "Aktionen für Stopps mit Fehlern aktivieren" bemerkt. Muss dies überprüft werden, damit die Wiederherstellung wirksam wird, wenn der Fehler durch einen Fehler verursacht wurde?

Danke, Mark.

M Schenkel
quelle

Antworten:

3

Wenn Ihre Dienste aufgrund eines Fehlers angehalten werden, der von Windows protokolliert wird, müssen Sie "Aktionen für Stopps mit Fehlern aktivieren" aktivieren. Andernfalls funktioniert dies nicht.

Wenn Sie dieses Kontrollkästchen nicht aktiviert haben, werden nur Dienste neu gestartet, die aus legitimen oder unbekannten Gründen gestoppt wurden.

Sam Cogan
quelle
1
Danke - das habe ich mir irgendwie gedacht. Aber ich hätte gedacht, "Fehler" wäre dasselbe wie "Fehler", und daher hätte der Dienst gestartet werden müssen, ohne das Kontrollkästchen zu aktivieren.
M Schenkel
Es scheint ein wenig seltsam, da stimme ich zu, da die meisten Gründe, aus denen ein Dienst ausfallen würde, Sie für einen Fehler halten würden.
Sam Cogan
2
Für Dienste, die aus "legitimen" Gründen gestoppt wurden, darf niemals eine Wiederherstellungsaktion ausgelöst werden. Diese Antwort verwirrt immer noch die Begriffe "Stopp" und "Fehler".
Matpop
3
Wer auch immer bei Microsoft diese Sprache verfasst hat, sollte endlos wegen seiner Inkompetenz ausgepeitscht werden.
Brain2000
16

Das Kontrollkästchen "Aktionen für Stopps mit Fehlern aktivieren" wurde mit Windows Vista und Windows Server 2008 eingeführt und bietet eine einzige, peinliche Dokumentationszeile :

Wählen Sie Aktionen für Stopps mit Fehlern aktivieren aus, um die Wiederherstellungsaktionen auszulösen, die der Dienst mit einem Fehler gestoppt hat.

Das SC.exe- Programm wurde ebenfalls aktualisiert, um einen neuen Befehl bereitzustellen : failureflag. Die Dokumentation zeigt ein schlechtes Beispiel und gilt nicht wirklich für Windows Server 2003, sagt uns jedoch, dass der Befehl:

Gibt an, ob Wiederherstellungsaktionen ausgelöst werden, wenn ein Dienst aufgrund eines Fehlers beendet wird.

Also das Kontrollkästchen und sc failureflagwerden verwendet, um das gleiche Flag zu setzen.
Lassen Sie uns Typ sc failureflagin der Eingabeaufforderung erhalten wir schließlich eine ganz anständige Beschreibung:

Ändert die Flag-Einstellung für Fehleraktionen eines Dienstes. Wenn diese Einstellung 0 ist (Standard), aktiviert der Service Control Manager (SCM) konfigurierte Fehleraktionen für den Dienst nur, wenn der Dienstprozess mit dem Dienst in einem anderen Status als SERVICE_STOPPED beendet wird. Wenn diese Einstellung 1 ist, aktiviert der SCM konfigurierte Fehleraktionen für den Dienst, wenn der Dienst zusätzlich zur Beendigung des Dienstprozesses wie oben mit einem anderen Win32-Exit-Code als 0 in den Status SERVICE_STOPPED wechselt. Diese Einstellung wird ignoriert, wenn für den Dienst keine Fehleraktionen konfiguriert sind.

Eine ähnliche Beschreibung finden Sie hier .
Die richtige Antwort auf die ursprüngliche Frage lautet also: Die konfigurierten Wiederherstellungsaktionen werden immer dann wirksam, wenn Ihr Dienst nicht im Status SERVICE_STOPPED beendet wird. "Aktionen für Stopps mit Fehlern aktivieren" muss aktiviert sein, wenn Sie die Wiederherstellungsaktionen auch dann aktivieren müssen, wenn Ihr Dienst in den Status SERVICE_STOPPED wechselt, sofern der Exit-Code nicht 0 ist (Fehler).

Matpop
quelle
2
Ein großes Lob für eine sehr hilfreiche Antwort!
Tim Lovell-Smith