Problem
Ein Windows-Dienst crasht ab und zu mal und soll neu gestartet werden. Natürlich sucht der gute Administrator zuerst nach der Ursache und behebt diese, anstatt das Symptom zu bekämpfen. Leider gibt es ab und zu Ursachen die kaum zu beheben sind, z.B. das Überschreiten einer Uhrzeit oder ein Verbindungsabriss oder ähnliches.
Im GUI für die Windows-Dienste lässt sich aber nicht weniger als „1 Minute“ einstellen. Das ist zu lange. Kann man die Zeit verkürzen? Auf zum Beispiel 500msec?
Lösung
Das geht, kein Problem. Dafür die das Kommandozeilentool „sc“ verantwortlich.
sc failure reset=30 actions=restart/500
„reset=“ gibt die Anzahl Sekunden an, nach deren Fehlerfreiem Ablauf der Zähler wieder zurückgesetzt wird. „actions=“ versteht die Parameter run, restart, und reboot. run führt ein Programm oder Script aus, restart startet den Dienst neu und reboot fährt den Server herunter und wieder herauf.
MSDN-Artikel: https://technet.microsoft.com/de-de/library/cc742019%28v=ws.10%29.aspx
Mehrere Tätigkeiten lassen sich dur den Slash auch kompinieren. Ein Beispiel:
sc <SERVERNAME> failure <DIENSTNAME> reset=60 command=c:\scripts\wecke-den-admin.cmd actions=restart/5000/run/10000/reboot/60000