![]() |
Überwachen und Neu-Starten von Programmen
Hallo allerseits,
ich habe da ein Problem der folgenden Art. In einem Netzwerk läuft auf dem Server ein selbst geschriebenes Programm A.EXE, welches ein Gerät mit Sensoren überwacht. Dieses Programm MUSS dauerhaft UND auf dem Server laufen! Nun möchte ich auf einer der Workstations ein Programm B.EXE laufen haben, welches A.Exe überwacht und ggf. neu startet. Da ich A und B selber schreibe ist die Überwachung eigentlich kein Problem. Wollte das über eine TCP/IP Verbindung lösen, so dass B.EXE einfach nur regelmäßig A.EXE anpingen muss. Meine Fragen wäre allerdings: 1. Wie kann ich ein Programm auf einem fernen Rechner starten. Kann ich IPs im Pfad übergeben? 2. Da B.EXE unter Benutzerrechten läuft, aber A.EXE unter Administratorrechten, kann ich da A.Exe überhaupt fern starten? Da müßte ich doch zumindest User/Password mitliefern können?Wie geht das? Ich danke schon mal für die kommenden Tips Gruß Murphy |
Re: Überwachen und Neu-Starten von Programmen
Und wieso denkst du das das Programm "A" nicht mehr läuft (Absturz etc?)
Falls du an User-interaktion denkst würde ich "A" als NT-Dienst realisieren welcher beim Systemstart automatish startet. |
Re: Überwachen und Neu-Starten von Programmen
Hallo,
eine direkte Antwort auf Deine Frage habe ich nicht, aber einen Vorschlag. Zu meinem Job gehört es, diverse Server zu überwachen. Überall laufen irgendwelche Dienste, die immer laufen müssen. Davon stürzt einer regelmäßig ab (und reißt - selten - andere Dienste früher oder später mit). Nun habe ich mir eine Möglichkeit geschaffen, von Server X die Dienste auf Server A, B, C... zu prüfen und ggfls. neu zu starten. Server X wird seinerseits von Server A, B, C... überwacht. Also jeder guckt auf jeden und repariert oder schickt 'ne Mail, dass da was nicht stimmt. Wenn Du nun aus A.EXE einen Dienst machst, kannst Du (unter Zuhilfenahme von z. B. psservice.exe von SysInternals) per Batch prüfen, ob der Dienst A.EXE noch läuft und wenn nicht den Dienst A.EXE neu starten. Dies geht serverübergreifend, sofern Du über die entsprechenden Rechte verfügst (bzw. Anmeldedaten per Kommandozeilenparameter übergibst). Das könnte für Deine Aufgabenstellung sicherlich eine Alternative sein. Mehr dazu findest Du ![]() |
Re: Überwachen und Neu-Starten von Programmen
Zitat:
|
Re: Überwachen und Neu-Starten von Programmen
Zitat:
Besten Dank! Gruß Murphy |
Re: Überwachen und Neu-Starten von Programmen
Zitat:
|
Re: Überwachen und Neu-Starten von Programmen
Ganz ehrlich ... da solltet ihr den Fehler im System beheben und nicht an den Symptomen herumdoktorn. Denn selbst wenn Dein Service das in irgend einer Weise abfängt, andere Services tun dies nicht.
|
Re: Überwachen und Neu-Starten von Programmen
Zitat:
Und mein Dienst hält uns die administrative Arbeit in erträglichem Maße. Der Mailverkehr läuft so (in der Regel) auch Nachts und am Wochenende weiter, durch den Neustart des Buggydienstes, wenn eben kein Admin erreichbar ist. Wenn der Dienst weg war, bekommen wir per Mail auf jedenfall eine Nachricht, egal ob Neustart erfolgreich oder nicht, damit wir schauen können, ob wir da was machen müssen. Sonst musst Du alle Viertelstunde (mindestens) die Mailboxen auf hängengebliebene Sachen prüfen. Und die Spamwellen, die das Straucheln des Dienstes nicht unerheblich mitverursachen, kommen leider meist Nachts und an Wochenenden. |
Re: Überwachen und Neu-Starten von Programmen
Ok, also falls Du sowas implementieren willst, ist das einfachste direkt auf den Service Manager des Servers zuzugreifen. Das geht auch Remote. Dort kannst Du dann minütlich checken ob Dein Service noch läuft und ihn bei Bedarf neu starten. Dazu müsste der "Watch Dog" allerdings wahrscheinlich im selben Netzwerk stehen, wie der Server. Was allerdings ohnehin klar sein sollte, weil son Interface um Services neu zu Starten frei im Netz zugänglich zu machen wär Selbstmord :P.
Näheres dazu hier: http://msdn.microsoft.com/en-us/library/ms684323(VS.85).aspx Für Dich relevant ist der lpMachineName Parameter. [EDIT]Mir is erst später aufgefallen das Du ja gar nicht der Thread Ersteller bist, sondern eine ähnliche Lösung auf Basis der SysInternals Tools vorgeschlagen hast. Ich lass den Hinweis auf den Service Manager mal drin falls jemand mal sowas sucht ;).[/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz