Skript zum Neustarten eines Dienstes
hallo,
habe eine frage: ist es möglich ein skript zu schreiben
- das permanent überprüft ob ein dienst noch läuft (also auf reaktion testen)
- wenn dieser dann nicht mehr läuft diesen dienst (falls er sich aufgehängt hat) beenden und neuzustarten?
und das alles am besten vollautomatisch und mit wenig aufwand )
wichtig wäre mir jetzt ersteinmal ob das bei windows xp überhaupt möglich ist und wie aufwändig das ganze ist.
dann kann man immer noch basteln
danke schon mal vorab!
mfg
NeoCortex
habe eine frage: ist es möglich ein skript zu schreiben
- das permanent überprüft ob ein dienst noch läuft (also auf reaktion testen)
- wenn dieser dann nicht mehr läuft diesen dienst (falls er sich aufgehängt hat) beenden und neuzustarten?
und das alles am besten vollautomatisch und mit wenig aufwand )
wichtig wäre mir jetzt ersteinmal ob das bei windows xp überhaupt möglich ist und wie aufwändig das ganze ist.
dann kann man immer noch basteln
danke schon mal vorab!
mfg
NeoCortex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 18000
Url: https://administrator.de/contentid/18000
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
14 Kommentare
Neuester Kommentar
möglich is alles und bei windows schon mal sowieso.
hi,
1. willst du überprüfen lassen ob ein dienst noch läuft (also "running" laut services.msc)?
2. oder ob der jeweilige dienst noch seine aufgabe erfüllt (zb w3svc beantwortet anfragen auf port 80)?
die erste variante kannst du leicht via "wiederherstellen" bzw wie schon erwähnt mit "sc.exe" oder einfach mit "net start | find SERVICENAME" überprüfen.
zu 2. ist es schon komplexer, denn dazu müsstest du ein tool verwenden/schreiben, welches die funktionalität des gewünschten services überprüft (zb: beim W3SVC eine HTTP-Abfrage). allerdings ist das für jedes einzelne zu überprüfende service zu tun, je nachdem welche aufgabe das service erfüllen soll. das bedeutet aufwand und kenntnisse über das jeweilige service/protokoll. *ggg*
j.
1. willst du überprüfen lassen ob ein dienst noch läuft (also "running" laut services.msc)?
2. oder ob der jeweilige dienst noch seine aufgabe erfüllt (zb w3svc beantwortet anfragen auf port 80)?
die erste variante kannst du leicht via "wiederherstellen" bzw wie schon erwähnt mit "sc.exe" oder einfach mit "net start | find SERVICENAME" überprüfen.
zu 2. ist es schon komplexer, denn dazu müsstest du ein tool verwenden/schreiben, welches die funktionalität des gewünschten services überprüft (zb: beim W3SVC eine HTTP-Abfrage). allerdings ist das für jedes einzelne zu überprüfende service zu tun, je nachdem welche aufgabe das service erfüllen soll. das bedeutet aufwand und kenntnisse über das jeweilige service/protokoll. *ggg*
j.
Moin NeoCortex,
ich halte ketchups Antwort (beide Teile) für eine punktgenaue Antwort. 5 von 5.
Deine Frage
Allerdings, wie immer unter Windows, verbleibt ein Bodensatz von 2% der Fälle, in denen Du einen Service-Absturz nur mitbekommst, weil Dich irgendwelche aufgeregten Anwender anrufen.
Zum Checken/Starten/Stoppen von Diensten hätte ich bei Bedarf irgendwo noch ein paar Batch-Oneliner, die mit den ResKit-Tools SC.exe, NetSvc.exe, SCList.exe oder auch dem 'Net Start Servicename' zusammenarbeiten.
Der Klicki-Bunti-Weg über "Wiederherstellen" ist jedenfalls <s>dummes Zeug</s> nicht zielführend für Deine Anforderung.
Grüße
Frank / der Biber aus Bremen
ich halte ketchups Antwort (beide Teile) für eine punktgenaue Antwort. 5 von 5.
Deine Frage
Wenn er sich aufhängt z.b. ist er ja dennoch vorhanden (aktiv) oder schnallt
das die verwaltung und merkt das er nicht funktioniert?
kann ich mit einem klaren "Jein" beantworten: Eigentlich (eins der am häufigsten verwendeten Worte in unserer Welt der Nullen und Einsen *gg), eigentlich "merkt" die Verwaltung das und der Dienst steht auf "STOPPED". Eigentlich immer.das die verwaltung und merkt das er nicht funktioniert?
Allerdings, wie immer unter Windows, verbleibt ein Bodensatz von 2% der Fälle, in denen Du einen Service-Absturz nur mitbekommst, weil Dich irgendwelche aufgeregten Anwender anrufen.
Zum Checken/Starten/Stoppen von Diensten hätte ich bei Bedarf irgendwo noch ein paar Batch-Oneliner, die mit den ResKit-Tools SC.exe, NetSvc.exe, SCList.exe oder auch dem 'Net Start Servicename' zusammenarbeiten.
Der Klicki-Bunti-Weg über "Wiederherstellen" ist jedenfalls <s>dummes Zeug</s> nicht zielführend für Deine Anforderung.
Grüße
Frank / der Biber aus Bremen
Moin NeoCortex,
ich weiß ja nicht, um welchen Service es nun geht, also kann ich nur ein bisschen unspezifisch vor mich hin schwafeln und ein paar Skizzen in den Sand malen...
Also, bei mir habe als für derartige Zwecke ein paar nützliche Utilities irgendwo im %path% untergebracht und zwar
NetSvc.exe, SC.exe und SCList.exe (alle aus den M$-ResKits)
Reg.exe, Net.exe und mein Lieblingstool Find.exe sind eigentlich ohnehin im Pfad. Die braucht man/frau im zweiten Schritt.
In meinem kleinen CMD-Fensterchen für Spontan-Abfragen ist standardmäßig EnableDelayedExpansion EINgestellt. Wenn Du das bei Dir nicht vorher über Registry oder AutoRun setzt, dann eine Zeile "Setlocal EnableDelayedExpansion" vorweg eintippen.
Bei mir funktionieren dann z.B. folgende Oneliner:
usw usw....
Hier bekommst Du also überall erstmal einen Output geliefert, den Du mit "Find" auf bestimmte Worte ( der Servicename würde sich anbieten ) untersuchst und je nach
- "Nicht gefunden" (Errorlevel 1) den Dienst neu startest mit net start oder bei
- "Gefunden" (Errorlevel 0) Dich wieder in den Schatten setzt.
So weit die allgemeine Skizze ins Blaue.
Kannst (und solltest) Du natürlich auch als Batch & als Dienst laufen lassen. Das "Wie" müsste auch hier im Forum zu finden sein.
BTW, ich hab vorhin gelesen, dass tim.frodermann gerade einen ähnlichen Thread in Arbeit (oder vielleicht jetzt schon fertig?) hat: Starttyp von Diensten per Batch/Script umschalten. Das ist ganz nah dran an Deiner Anforderung.
HTH Biber
ich weiß ja nicht, um welchen Service es nun geht, also kann ich nur ein bisschen unspezifisch vor mich hin schwafeln und ein paar Skizzen in den Sand malen...
Also, bei mir habe als für derartige Zwecke ein paar nützliche Utilities irgendwo im %path% untergebracht und zwar
NetSvc.exe, SC.exe und SCList.exe (alle aus den M$-ResKits)
Reg.exe, Net.exe und mein Lieblingstool Find.exe sind eigentlich ohnehin im Pfad. Die braucht man/frau im zweiten Schritt.
In meinem kleinen CMD-Fensterchen für Spontan-Abfragen ist standardmäßig EnableDelayedExpansion EINgestellt. Wenn Du das bei Dir nicht vorher über Registry oder AutoRun setzt, dann eine Zeile "Setlocal EnableDelayedExpansion" vorweg eintippen.
Bei mir funktionieren dann z.B. folgende Oneliner:
- Liste aller Services auf einem Computer:
(SET /P C=Computername: ) & netsvc.exe \\!C! /List
- Liste aller geSTOPten Services auf einem Computer
(SET /P C=Computername: ) & sclist.exe -s !C!
- Läuft der WebService auf einem bestimmten Computer?
(SET /P C=Computername: ) & netsvc.exe \\!C! W3SVC /query
usw usw....
Hier bekommst Du also überall erstmal einen Output geliefert, den Du mit "Find" auf bestimmte Worte ( der Servicename würde sich anbieten ) untersuchst und je nach
- "Nicht gefunden" (Errorlevel 1) den Dienst neu startest mit net start oder bei
- "Gefunden" (Errorlevel 0) Dich wieder in den Schatten setzt.
So weit die allgemeine Skizze ins Blaue.
Kannst (und solltest) Du natürlich auch als Batch & als Dienst laufen lassen. Das "Wie" müsste auch hier im Forum zu finden sein.
BTW, ich hab vorhin gelesen, dass tim.frodermann gerade einen ähnlichen Thread in Arbeit (oder vielleicht jetzt schon fertig?) hat: Starttyp von Diensten per Batch/Script umschalten. Das ist ganz nah dran an Deiner Anforderung.
HTH Biber
Hi
Windows selbst bietet eine Überwachung an:
Schaut mal unter den Eigenschaften des Dienstes beim Reiter "Wiederherstellen".
Dort kann man Aktionen auswählen, die ausgeführt werden sollen, wenn der Dienst "ausfällt".
Was genau "Ausfallen" bedeutet kann ich nicht sagen.
Auf jeden Fall wird dieses "Ausfallen" Vom session control manageer im Eventlog protokolliert.
Gruß
Tree
Windows selbst bietet eine Überwachung an:
Schaut mal unter den Eigenschaften des Dienstes beim Reiter "Wiederherstellen".
Dort kann man Aktionen auswählen, die ausgeführt werden sollen, wenn der Dienst "ausfällt".
Was genau "Ausfallen" bedeutet kann ich nicht sagen.
Auf jeden Fall wird dieses "Ausfallen" Vom session control manageer im Eventlog protokolliert.
Gruß
Tree
andere frage: ist es möglich ein programm (quasi wie der guard bei antivir)
als dienst zu bezeichnen?
ich habe auch zusätzlich noch ein programm das sich nicht in die dienste
eingetragen hat und da hätte ich das auch irgendwie gerne.
als dienst zu bezeichnen?
ich habe auch zusätzlich noch ein programm das sich nicht in die dienste
eingetragen hat und da hätte ich das auch irgendwie gerne.
geht!
Die Tools sind Teil der Resource Kits zu WinNT W2k und W2003.
Such mal nach SRVANY.exe und INSTSRV.exe.
folgendes sollte weiterhelfen:
http://support.microsoft.com/kb/q137890/
http://www.rz.uni-freiburg.de/pc/sys/srvany/srvany.doc
http://www.electrasoft.com/srvany/instsrv.exe
http://www.electrasoft.com/srvany/srvany.exe
Gruß
Tree