Kategorien
Administration Batch (DOS) Programmierung

Programmstart wenn Dienst nicht läuft

Oftmals ist es beim Kunden nötig, ein Programm oder einen Dienst am laufen zu halten. Das auch, nach Systemneustarts oder anderen Ereignissen.
Mit folgendem kleinen Batch-Script kann das umgesetzt werden.

@echo off & setlocal
:: Quelle: WiSchOnline.de
:: Script zum Starten eines Programms
:: Dabei wird vorab geprueft, ob das Programm bereits laeuft.
:: Dazu werden die Prozessnamen nach dem Suchnamen durchsucht.
:: Ist das der Fall wird kein zweites Mal gestartet
:: Parameteruebergabe beim Scriptaufruf:
:: 1. Parameter = Suchname (meist reiner Programmname gem. Taskliste)
:: 2. Parameter = Programm inkl. Pfad (in Anfuehrungszeichen!)
:: Bsp. Standard: einfachstart iexplorer "c:programmeinternet explorerexplorer.exe"

:: Prameter von der Kommandozeile holen
set "Suchname=%~1"
set "Programm=%~2"

:: Fehlt ein Parameter dann Ende
if not defined Programm goto :ENDE

:: Taskliste durchsuchen nach dem zu startenden Programm
tasklist |find /i "%Suchname%" >nul

:: Verzweigung, je nach Ergebnis
if %errorlevel% == 0 (
:: Das Programm/Der Dienst laeuft bereits: Nichts machen
) else (
:: Das Programm/Der Dienst laeuft nicht: Programm starten
start "" "%Programm%"
)

:ENDE
exit

Dieses Script kann man dann per geplantem Task, beim Systemstart oder manuell aufrufen.
Entsprechend der Kommentarzeilen wird mit dem Start geprüft, ob ein entsprechender Dienst läuft
und das angegebene Programm nur gestartet, wenn dies nicht der Fall ist. Damit wird also ein doppelter
Start des entsprechenden Programms verhindert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.