abgestürztes Programm automatisch neu starten?

Hallo Leute

Ich habe da eine Software, die leider nicht so stabil ist, wie sie es sein sollte und daher ganz gern mal kommentarlos abstürzt. Das wäre an und für sich kein allzugrosses Problem, da das Programm automatisch im Hintergrund arbeiten soll und die Arbeit wiederaufsetzen kann. Blöd ist nur, dass das Programm meist ca. 5 Minuten nachdem man den PC verlassen hat, abstürzt. Kommt man in einer Stunde wieder, ärgert man sich entsprechend.

Frage daher an die Experten: gibt es unter Windows XP Professional SP2 etwas, dass der Inittab unter Linux vergleichbar ist. Also eine Möglichkeit, ein Programm so zu starten, dass es bei einem Absturz automatisch neu gestartet wird? Wenn es keine fertigen Lösungen gibt: wie würdet Ihr so ein Problem lösen (Abgesehen von Programmwechsel oder Programmierer-in-den-Arsch-treten)?

Hab schon etwas herumprobiert: es gibt zwar den netten tasklist-Befehl, nur der gibt keinen errorlevel zurück, wenn ein Programm nicht gefunden wird (oder ich bin zu blöd zum auswerten). Natürlich kann man die Ausgabe von tasklist in eine Datei umleiten und dann deren Inhalt auswerten - ist aber nicht so toll.

Ach ja, die Rahmenbedingungen:
OS: Windows XP Professional SP2 (inkl. aller Fixes)
Als Lösung kommen in Frage:

  • Freeware-Programme, die das vollautomatisch machen
  • Batch-Dateien
  • Perl-Programme
  • VBScript

Darüber hinaus möchste ich ehrlich gesagt keine weitere Skriptsprache installieren.

lg
Erwin

Hallo,

Ach ja, die Rahmenbedingungen:
OS: Windows XP Professional SP2 (inkl. aller Fixes)
Als Lösung kommen in Frage:

  • Freeware-Programme, die das vollautomatisch machen
  • Batch-Dateien

Kurz und knackig:

tasklist | find "PROGRAMMNAME" \> nul
if not errorlevel==1 if errorlevel==0 call PROGRAMMSTARTBAT
BATNAME

Laesst sich mit sicherheit noch verbessern. Und ich weiss auch nicht, inwiefern der rekursive Aufruf sein muss (evtl. mit pause etwas warten), vielleicht hilft auch ein regelmaessiger Aufruf oder soetwas in der Art.

Ciao! Bjoern

hi bjoern

Kurz und knackig:

tasklist | find „PROGRAMMNAME“ > nul
if not errorlevel==1 if errorlevel==0 call PROGRAMMSTARTBAT
BATNAME

reicht mir schon mal - auch wenn der errorlevel 0 offenbar anzeigt, das was gefunden wurde und in deinem beispiel das programm daher ständig neu gestartet wird.

aber der denkansatz ist schon richtig, daher für mich brauchbar. leider gibt die normale hilfe der consolen-befehle ja nicht an, was da als errorlevel zurückgegeben wird. sonst wäre ich ja eh selber draufgekommen…

lg
erwin