Dienstag, 18 Dezember 2018 15:09

Windows Dienst sicher per Batch Script neustarten

Artikel bewerten
(0 Stimmen)

Aus aktuellem Anlass habe ich ein Batch-Skript geschrieben, das den Neustart eines Dienstes steuert (übertragbar über den Startparameter -%1). Durch einen Neustart des Skripts für den kontrollierten Windows-Dienst wird der Vorgang beendet und gewartet, bis er tatsächlich beendet wurde. Sobald der Dienst tatsächlich nicht mehr ausgeführt wird, wird versucht, ihn neu zu starten. Auch hier wartet das System, bis der Dienst wieder ausgeführt wird. Das Skript ist eine einfache Batchdatei und kann daher auf jedem Windows-System ausgeführt werden. Die Datei kann auch nach Bedarf angepasst werden. Im aktuellen Fall wird das Batch-Skript in Kombination mit dem Windows Task Scheduler verwendet.

Das Script: Sicher Windows Dienst neustarten

@ECHO OFF
REM /// #Starts, stops & controls 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 - Wait and see if stopping worked
: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 - Starting service
:RESTART
sc start %1
GOTO CHECKAGAIN

REM - Check if service is active again
: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
Gelesen 61 mal Letzte Änderung am Montag, 21 Dezember 2020 16:32

Schreibe einen Kommentar

Bitte achten Sie darauf, alle Felder mit einem Stern (*) auszufüllen. HTML-Code ist nicht erlaubt.