Absturz eines Windows Prozesses erkennen

Diskutiere Absturz eines Windows Prozesses erkennen im Programmierung Forum im Bereich Software Forum; Hi, ich muss ein Windows Programm schreiben, das einen Server startet und überwacht. Das ist ein blöder Server der dauernd abstürzt. Mein Programm...
N

nic2948

Threadstarter
Mitglied seit
23.09.2008
Beiträge
2
Hi,
ich muss ein Windows Programm schreiben, das einen Server startet und überwacht. Das ist ein blöder Server der dauernd abstürzt. Mein Programm soll diesen Server halt starten und wenn er abstürzt soll er ihn neu starten.
Mit der Programmierung unter Windows bin ich überhaupt nicht geübt. Kenne mich nur mit dem Prozessverhalten unter Unix aus.
Habt ihr einen Tipp für mich, wie ich programmiertechnisch herausbekomme, ob mein gestarteter Prozess noch reagiert?
Sprache ist erstmal egal. Geht ums konzeptionelle.
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.158
:welcome

Ich nehme an, Du meinst mit Server einen Serverprozess und nicht den ganzen Rechner. Denn wenn der Rechner selber abschmiert, nützt Dir ja auch Dein Überwachungsprogramm nichts mehr ;-)

Wenn der Prozess so abschmiert, dass er in der Prozesstabelle nicht mehr auftaucht, dann könntest Du folgendermaßen vorgehen:
In periodischen Zeitabständen die Prozessliste durchsuchen, ob der Prozess noch drin ist und bei Bedarf neu anschmeißen.

Es gibt aber leider auch Prozesse, die reagieren nicht mehr und tauchen in der Prozessliste immer noch auf. Dann wird das Ganze natürlich komplizierter. Dann müsste man u.U. Prozessstatistiken führen, die einem zeigen, ob da überhaupt noch I/O so passieren.

Für solche Sachen musst Du sehr wahrscheinlich C/C++ verwenden, da die für solche Innereien zu verwendenden Systemfunktionen des Windows API in C++ am einfachsten zu handhaben sind.

Aber: wie ich bereits neulich an anderer Stelle hier im Forum sagte: die beste Methode ist zu untersuchen warum der Prozess abschmiert und die Ursache abzustellen, nicht die Symptome. Einen abgeschmierten Prozess einfach neu zu starten, KANN Nebeneffekte haben, weil z.B. Dateien nicht sauber geschlossen und Puffer nicht geschrieben wurden, und man handelt sich u.U. ein instabiles System ein.
 
N

nic2948

Threadstarter
Mitglied seit
23.09.2008
Beiträge
2
...
Wenn der Prozess so abschmiert, dass er in der Prozesstabelle nicht mehr auftaucht, dann könntest Du folgendermaßen vorgehen:
In periodischen Zeitabständen die Prozessliste durchsuchen, ob der Prozess noch drin ist und bei Bedarf neu anschmeißen.

Es gibt aber leider auch Prozesse, die reagieren nicht mehr und tauchen in der Prozessliste immer noch auf. Dann wird das Ganze natürlich komplizierter. Dann müsste man u.U. Prozessstatistiken führen, die einem zeigen, ob da überhaupt noch I/O so passieren.
...
Im Prinzip brauche ich so etwas wie ein /proc fs. Gibt es unter Windows auch die Möglichkeit an wertvolle Informationen über die Prozesse heranzukommen?
 
automatthias

automatthias

vernunftgeplagt
Mitglied seit
21.04.2006
Beiträge
8.158
Wenn Du dir den Process Explorer von Sysinternals anschaust, dann siehst Du, was man alles an INformationen über Prozesse bekommen kann.
Wie gesagt, dazu braucht man Systemfunktionen aus dem Windows API
(siehe msdn.microsoft.com)

An Windows-Bordmitteln gibt es den Taskmanager bzw. das Kommandozeilenprogramm tasklist. Letzteres bietet schon selber einige Möglichkeiten zur Prozessüberprüfung und kann damit in einem Skript verwendet werden. Vielleicht reicht das sogar schon für Deine Zwecke.
 
DiableNoir

DiableNoir

Mitglied seit
18.01.2004
Beiträge
6.069
In Windows ist man in der Hinsicht gut ausgerüstet.

Außerdem gibt es neben den klassischen APIs und den Kommandozeilentools noch die WMI. Damit lassen sich Prozesse auch über Netzwerk anzeigen und steuern. (WMI verwendet für solche Abfragen eine SQL-ähnliche Syntax.) ;)

BTW: Würde hier nicht eine Batch-Datei ausreichen, die den Server mit dem START-Befehl startet und dann wartet bis er beendet ist. (Parameter /WAIT) Die Batch-Datei kann dann das Serverprogramm gleich wieder starten. Wenn du das noch in eine Endlosschleife packst, sollte das eigentlich ausreichen. (Ist zwar alles andere als ein intelligentes Programm, aber sicher die einfachste Lösung.)
 
T

Tikonteroga

Mitglied seit
23.05.2005
Beiträge
1.969
Hallo,

also falls es dir möglich ist, den Code des Server Prozesses einzusehen und zu verändern solltest du lieber veruschen den Fehler direkt zu beheben. Dies wäre die richtige Lösung des Problems.

Die Methode mit der zyklischen Abfrage in einer Schleife oder richtig zeitgesteuert ist Polling und sollte bei der Software-Entwicklung vermieden werden.
 
Thema:

Absturz eines Windows Prozesses erkennen

Absturz eines Windows Prozesses erkennen - Ähnliche Themen

  • Windows 10 Abstürze in unregelmäßigen Abständen

    Windows 10 Abstürze in unregelmäßigen Abständen: Windows 10 Pro crashed in unregelmäßigen Abständen, meist jedoch bei höherer Auslastung, jedoch nicht zwangsläufig. In der Ereignisanzeige findet...
  • Windows 10 pro - Explorer-Absturz bei Rechtsclick

    Windows 10 pro - Explorer-Absturz bei Rechtsclick: Bei mir stürzte seit einiger Zeit bei einem Rechtsclick der Explorer ab. Nun habe ich eine Sicherung vom letzten Jahr geladen, und es hat wieder...
  • Absturz Installationsprogramm für Windows 10

    Absturz Installationsprogramm für Windows 10: Hallo, möchte meinem PC, auf dem noch Windows 7 läuft, auf Windows 10 upgraden. Habe daher Lizenz erworben und das Installationsprogramm für...
  • Xbox One Controller Model 1708 Lässt Windows nach Eingabe abstürzen

    Xbox One Controller Model 1708 Lässt Windows nach Eingabe abstürzen: Seit den Insider Release 18282 kann ich meinen meinen Teuer Gekauften Kontroller nicht mehr Verwenden. Weder Via Bluetooth noch an USB...
  • Xbox One Controller Model 1708 Lässt Windows nach Eingabe abstürzen

    Xbox One Controller Model 1708 Lässt Windows nach Eingabe abstürzen: Seit den Insider Release 18282 kann ich meinen meinen Teuer Gekauften Kontroller nicht mehr Verwenden. Weder Via Bluetooth noch an USB...
  • Ähnliche Themen

    Oben