sumylein
Goto Top

Programm überawchung und ggf neustart

Hi,

Ich habe folgendes Problem, ich habe ein Programm am laufen das teilweise abstürzt. Nun bräuchte ich ein programm was dieses überwacht und ggf neustartet.

Gibt es sowas in der Art schon?

Content-ID: 60859

Url: https://administrator.de/contentid/60859

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

bastla
bastla 08.06.2007 um 14:22:16 Uhr
Goto Top
Hallo Sumylein und willkommen im Forum!

Ein Tool kann ich Dir nicht nennen, aber eine einfach Lösung per Batch könnte so aussehen:
@echo off & setlocal
set Tsk=notepad.exe
set "Prog=%windir%\System32\notepad.exe"  
set Running=
for /f %%i in ('tasklist') do echo (%%i)|findstr /C:"(%Tsk%)" > nul && set Running=1  
if not defined Running start "Starte ..." "%Prog%"  
Der Eintrag bei "set Tsk" muss der Anzeige für das Programm im Windows-Taskmanager (Register "Prozesse") bzw der Ausgabe, die Du mit dem CMD-Befehl "tasklist" erhältst, entsprechen.

Die Batchdatei prüft bei jedem Aufruf, ob der angegebene Prozess gefunden wird und startet anderenfalls das in Zeile 3 angegebene Programm. Die Batchdatei kannst Du über einen geplanten Task in regelmäßigen Abständen (zB alle 30 Minuten, falls das genügt) ausführen lassen.

Grüße
bastla
AxelHahn
AxelHahn 08.06.2007 um 14:22:30 Uhr
Goto Top
Hi,

grundsätzlich ist das Prozedere einfach:

(1) du brauchst einen Testvorgang, der prüft, ob deine Anwendung da ist.
Da mein Blick in die Glaskugel nicht verraten konnte, um welche Art Software es sich handelt, kann ich es nur allg. formulieren. Ansätze wären:
a) prüfen des Ports (wenn es ein Server ist, der über einen definierten Port arbeitet)
b) prüfen einer konkreten Anfrage an dein Programm und Auswertung der Antwort
, ob diese korrekt ist (das klappt bei Diensten, wie Web, Datenbank, DNS etc ganz gut).
c) Prozessliste durchsehhen, ob der Prozess da ist (Kommando tasklist als Stichwort).

(2) Wenn Test von 1) fehlschlägt, das Programm beenden (falls es nur hängt) und dann neu starten.

Wenn dein Test funktioniert, packst du das Ganze in den Taskplaner.

Viele Grüsse
-= Axel =-
Sumylein
Sumylein 08.06.2007 um 19:39:46 Uhr
Goto Top
Also Punkt 2 trifft es gut überprüfen ob das Programm läuft, wenn es hängt oder nichtmehr im Process Explorer ist soll es neugestartet werden.
paulkuhn
paulkuhn 11.11.2010 um 18:02:27 Uhr
Goto Top
Hallo...

Die batch-Datei funktioniert ja prima unter XP.

Aber wie sieht das Ganze unter 2000/Server 2000 aus?
Da gibt es ja scheinbar keine Tasklist.exe.
Ist hier etwas vergleichbares mit Bordmitteln möglich?

Danke

Paul
bastla
bastla 11.11.2010 um 18:30:22 Uhr
Goto Top
Hallo paulkuhn!

Soferne Du "Bordmittel" eng auslegst, käme eigentlich nur die "tlist.exe" aus der "SUPPORT.CAB" (Installations-CD, Ordner "\SUPPORT\TOOLS" (oder von hier) infrage.

Bei nur etwas weiterer Auslegung könntest Du auf PsList (ehemals SysInternals, jetzt schon länger MS) zurückgreifen (wobei hier darauf zu achten ist, dass der Dateityp nicht ausgegeben wird und daher auch nicht danach gesucht werden kann - es dürfte daher in Zeile 2 anstelle von "notepad.exe" nur "notepad" zugewiesen werden).

Grüße
bastla
paulkuhn
paulkuhn 12.11.2010 um 11:16:30 Uhr
Goto Top
Hallo bastla,

funktioniert mit PsList. Zu beachten sind halt die kleinen Änderungen am Original-Script, wie von dir beschrieben.

Herzlichen Dank