Windows Services mit shutdown skript
lima-city → Forum → Heim-PC → Betriebssysteme
anklicken
anwender
anwendung
beantworten
beenden
code
dienst
eingabeaufforderung
frage
gegenteil
idee
koppeln
lieferumfang
programm
ruck
schauen
service
stoppen
vorgang
windows
-
Hello experts,
sicher denkt Ihr ich möchte einen Windows Service (oder auch Dienst) mittels eines shutdownskriptes herunterfahren!!
falsch, darüber findet man reichlich bei Google und Co.
Ich möchte im Gegenteil einen Service manuell herunterfahren, (ganz easy über Dienste, Dienst anklicken und dann Stop klicken) an diese Aktion aber ein Shutdownskript hängen. Dabei ist es mir egal, ob es ein Perlskript, eine Batchdatei oder sonstwas ist.
Ziel dieser Übung ist es, einen Service zu stoppen und die 3 Prozesse, die dieser Service startet mit zu killen.
Genauer: Der Service ist über eine srvany.exe gestartet. die Javadatei, die dahinter liegt, sorgt dafür das immer 3 Prozesse einer bestimmten .exe Datei gestartet sind. Nun soll das stoppen des Service bewirken, dass alle dazugehörigen Prozesse mit beendet werden.
Hat einer eine Idee? Google ist da nicht wirlich ergibig ...
Viele Grüße
Frank -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
also ich würde für alles gemeinsam ein Bat skript machen:
rem Dienst beenden net stop DIENSTNAME rem ping als zeitverzögerung bis Dienst auch wirklich beendet ist ping localhost rem F für force /IM für den Prozessnamen und /T damit auch alle untergeordneten Prozesse beendet werden taskkill /F /IM PROZESSNAME.EXE /T
lg,
speckuntu -
speckuntu schrieb: also ich würde für alles gemeinsam ein Bat skript machen:
Hallo speckuntu,
habe ich schon versucht, aber meine Anwender stoppen den Dienst wie man eben einen Dienst stoppt und erwarten dann, dass alle Prozesse damit beendet werden.
das skript liegt sozusagen da so rum und keinen interessiert es ...
Daher suche ich eine Möglichkeit ein solches Skript mit an das Stoppen eines Dienstes zu koppeln.
Viele Grüße
Frank -
Naja, du kannst auch einfach die andern Anwendungen beauftragen, immer mal wieder zu schauen, ob der Alphaprozess noch läuft, und wenn nicht, sich selbst zu beenden. Damit gehen alle anderen Anwendungen beim Schließen einer einzigen Anwendung ruck zu down und du kannst immer noch weitere Anwendungen hinterher schaufeln, ohne die Anwendung, die den Alphaprozess darstellt, aus zu tauschen.
-
drafed-map schrieb: Naja, du kannst auch einfach die andern Anwendungen beauftragen, immer mal wieder zu schauen, ob der Alphaprozess noch läuft, und wenn nicht, sich selbst zu beenden.
Hallo drafed-map,
leider nein, ich habe keinen Einfluß auf den Quellcode des Vorhandenen Programms, ich administriere es nur. Maximal kann ich Skripte noch dazu schreiben, aber, wie gesagt, nicht vorhandenes verändern.
Also bleibt doch nur die Möglichkeit den Service-Stop-Vorgang zu erweitern ... aber wie?
Viele Grüße
Frank -
oder manmacht es radikal und gibt den usern keinen zugriff mehr auf den tsmanager :)
wie schnell sind die pcs? immer voll ausgelastet? wenn nicht dann erstell doch ne bat die immer überprüft ob die anwendung noch aktiv ist
die startest du beim hochfahren und lässt im hintergrund laufen
-
Ich würde mal folgendes versuchen.
einen eigenen Service registrieren und damit ein VB-Script ausführen, welches den Service "Dienstname" überwacht, ob er noch läuft.
Wenn der Service "DIENSTNAME" beendet wurde, kannst Du den Rechner runter fahren lassen.
Hat den Vorteil, dass der User den Prozess via Task-Manager nicht beenden kann.
Beitrag zuletzt geändert: 31.7.2010 20:28:24 von sfadessau -
Hallo,
erstmal vielen Dank für eure Ideen!!
Aber da es sich bei den ideen eigentlich um workarounds handelt, sehe ich das richtig, dass meine ursprüngliche Frage mit NEIN zu beantworten ist?
Ursprüngliche Frage: ein Skript (Stopskript/Shutdownskript) an das beenden eines Dienstes zu koppeln. (Dienst manuell beenden => Dienste aufrufen -> Dienst anklicken -> Dienst stoppen) Das Beenden des Dienstes soll ein Skript auslösen.
Vielleicht doch noch eine idee??
Viele Grüße
Frank
-
Deine ursprüngliche Frage, denke ich mal, ist in der Tat mit NEIN zu beantworten, da es von Windows selbst aus keine Möglichkeit gibt, das einzubinden, bleibt bloß die Möglichkeit, ein Programm zu schreiben, das periodisch (z.B. alle 5 Sekunden) abzufragen, ob der Dienst noch läuft. Wenn der nicht mehr läuft, soll das Programm die 3 Tasks killen. Wenn du den Weg über ein Batch-Skript machen willst, hat der User ständig das schwarze Fenster der Eingabeaufforderung offen, bis du den Dienst beendest, davon mal abgesehen, dass dir eine effektive Möglichkeit fehlt, um zu überprüfen, ob ein Dienst läuft.
Möglicherweise kannst du über VBScript, das im Lieferumfang aller "neueren" Windows-Versionen enthalten sein sollte, eine Lösung finden.
Wie gesagt: um eine zyklische Abfrage, ob der Dienst läuft, wirst du nicht 'rumkommen. Ich lasse mich aber natürlich gerne vom Gegenteil überzeugen, da ich auch eine Anwendungsmöglichkeit dafür hätte -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage