Windows Dienst neustarten: Batch Script zum kontrollierten restart

batch-script-zum-kontrollierten-restart-eines-dienstes

Aus aktuellem Anlass habe ich ein Batch Script geschrieben welches einen¬† beliebigen Dienst (via Start Parameter √ľbertragbar -%1) kontrolliert neustartet. Das Script zum kontrollierten Windows Dienst neustarten, beendet den Prozess und wartet bis dieser auch tats√§chlich beendet ist. Sobald der Dienst tats√§chlich nicht mehr l√§uft, wird danach versucht diesen wieder zu starten. Auch hier wird solange gewartet bis der Dienst wieder l√§uft. Bei dem Script handelt es sich um eine einfache Batch Datei und ist somit auf jedem Windows System lauff√§hig. Ebenso kann die Datei beliebig angepasst werden. Im aktuellen Fall wird das Batch Script in Kombination mit dem Windows Task Scheduler verwendet.

Werbung

Das Script: Kontrolliert Windows-Dienst-neustarten

@ECHO OFF
REM /// #Startet, Stoppt & Kontrolliert Service
REM /// #Datum: 2016-01-26
REM /// #Author: Griep Marco
 
REM - MAIN-Prozess
echo.
echo "================================"
echo " Griep Marco - Restart Service"
echo "================================"
echo.
echo "Trying to stop Service"
echo.
sc stop %1
echo.
goto WAITFORSTOP
 
REM - Warte und pr√ľfe ob stoppen funktioniert hat
:WAITFORSTOP
echo "Waiting...."
timeout 5 > NUL
echo.
echo "Check if service is not running anymore"
echo.
sc query %1 | Find /i "RUNNING"
IF ERRORLEVEL 1 GOTO RESTART
IF ERRORLEVEL 0 GOTO WAITFORSTOP
 
REM - Starte dienst
:RESTART
sc start %1
GOTO CHECKAGAIN
 
REM - Pr√ľfe ob Dienst wieder Aktiv
:CHECKAGAIN
timeout 5 > NUL
echo.
echo "Check if service is running again"
echo.
sc query %1 | Find /i "RUNNING"
IF ERRORLEVEL 0 EXIT
IF ERRORLEVEL 1 GOTO CHECKAGAIN

Kommentar verfassen