Laeuft eine bestimmte Software auf dem Server

Hallo,

ich habe einen Windows Server 2008, der bei einem Hoster steht.

Auf dem Server laeuft ein Fremd-Programm als Windows Dienst. Leider stuerzt dies gelegentlich ab.

Wie kann ich automatisch feststellen ob das Programm laeuft oder nicht, damit ich dann ggf eine Mitteilung bekomme oder eine Fehler-Datei erstellt wird.

Habe leider wenig Windows Server Erfahrung. Alle meine anderen Server sind Linux. Da wuesste ich wie ich es mit einem kleinen Perl Script machen wuerde.

Schon mal Danke fuer Eure Hilfe.

Herzliche Gruesse
Christian

Mal eine Gegenfrage! Perl gibt es doch auch für Windows. Kannst du auf dem Server Perl installieren oder installieren lassen? Dann hättest du die gleiche Situation wie bei Linux!

Hallo,

schau Dir mal die Sysinternals Tools an. Da gibt es jede Menge von Unixoiden Systemen bekannte Dinge auch für Windows. Und ich meine mich zu erinnern, neulich noch über die Syntax für die von Dir gesuchte Geschichte auf einer Sysinternals Seite gestoßen zu sein.

Gruß vom Wiz

Hi …

Erstens haben Dienste, soweit ich mich erinnere, eine Option, sodass sie sich selbst neu starten wenn sie mit Absturz beendet werden. SOweit ich weiß wird dann auch ein Eventlog EIntrag geschrieben, über deren Auswertung könntest Du feststellen, wie oft das passiert.

Anders schauts natürlich aus, wenn der Dienst nicht abschmiert, sondern einfach nur nicht mehr antwortet.

Nehmen wir an, er schmiert ab … dann kannst Du so ein Script z.B. mit dem WSH und die WMI Schnittstelle realisieren. Da bekommst Du eine Liste aller Win32_Process Objekte in die Hand, Du musst sie nur abtickern und sehen, ob Dein Prozess vorkommt, und wenn nein, irgendwas tun. Mail schicken dürfte wohl am EInfachsten zu machen sein, weil das keinen permanenten Datenkanal zu dem Server voraussetzt.

Wenn er nicht abschmiert, wirds schwierig. Windows kann nicht erkennen, dass der Prozess zwar läuft, aber nicht mehr tut was er soll, WMI und WIn32_Process werden auch der Meinung sein, es sei alles OK, dann müsstest Du irgend eine eigene Routine austüfteln die dem Dienst irgendeine Testaufgabe mit Timeout stellt und so herausfindet, dass der Dienst hängt.

Wilde Idee: über das WMI Interface könntest Du eventuell noch an die Performance-Counter des Dienstes herangehen und einen Absturz vermuten, wenn der Prozess weder CPU Last noch IO Vorgänge macht, aber das ist schon recht kitzlig, die Prüfroutine soll den Server ja nicht belasten…

Gruss Armin.

Hallo!
Du kannst in der Diensteverwaltung bei besagtem Dienst einstellen, was passieren soll, wenn der Dienst mit Fehler beendet wird (Registerkarte „Wiederherstellung“).
Dort kannst Du dann z.B. bei „Erster Fehler“ einstellen, dass ein Programm gestartet wird.
Darüber kannst Du Dir eine Mail schicken lassen.
Den konkreten Mailversand kannst Du auf verschiedene Wege realisieren.
Ein Kommandozeilen-SMTP-Mailer ist bspw. „BLAT“ (einfach mal googeln).
Alternativ kannst Du auch über ein kleines VBS Mails schicken: http://social.technet.microsoft.com/Forums/msonline/…

Auch für Powershell habe ich beim Googeln etwas Entsprechendes gefunden.

Gruß,
Martin