# Windows Prozess mit Java überwachen



## Antrax (14. August 2004)

Hallo, ich bin in besitzt eines Windows 2003 Servers ...

Nun, ich suche nach einer Möglichkeit mit Java verschiedene Prozesse zu überwachen, und ggf. wenn sie beendet werden, sie automatisch neuzustarten.

Gibt es da eine Möglichkeit ? Bzw. hätte vielleicht jemand schon eine Rohfassung solch eines Scripts ?


MfG Antrax


----------



## squeaker (14. August 2004)

dies ist die Java, nicht Java-Script Ecke. Falls du also Scipts für den WindowsScriptingHost suchst, bist du falsch.
Unter java geht das Designbedingt nicht mit Bordmitteln. Du musst auf das JNI ausweichen.

Vielleicht findest du aber mit samurize schon was du brauchst.


----------



## Antrax (15. August 2004)

Naja, das ist nicht direkt was ich suche 

Also ich beschriebe mal mein ganzes Problem ...

Ich habe einen WIndows 2003 Server auf dem mehrere Gameserver ( hauptsächlich Counter-Strike 1.6 ) laufen.

Nun, ich möchte diese über ein Webinterface per php starten, rebooten und schließen können.

PHP ist leider dazu nicht so bsonders in der Lage ( nur starten ).

Habe also vor ein kleines Programm in Java zu schreiben, womit ich Programme starten, neustarten und auch schließen ( Windows Prozess killen ) kann.

Mittlerweile habe ich herausgefunden, dass man ja Prozesse mit der tasklist.exe in Windows auslesen kann und auch mit Hilfe der taskkill.exe schließen kann.
( siehe dazu http://is-it-true.org/nt/atips/atips301.shtml

Bin mir aber nicht genau im klaren,. wie ich es genau umsetzen soll.
Bzw. wie lese ich am besten und auf einfdache Weise die Ausgabe der tasklist.exe aus und  durchsuche sie nach dem prozess ?

Mfg  Antrax


----------



## squeaker (15. August 2004)

ruf die tasklist.exe einfach mit dem Parameter >tasklist.txt auf also z.B.

tasklist.exe > tasklist.txt.

Dieses erzeugt dir eine Textdatei die du dann Zeilenweise auslesen kannst und dir dann so die Tasknamen besogen kannst.

Aber kann PHP keine Programme starten? ich denke doch. Dann sollte es mit PHP genauso gehen.


----------



## Antrax (15. August 2004)

doch, php kann mit dem Befehl exex("dateipfad"); auch programme starten, allerdings möchte ich es aus sicherhitsgründen nicht mit php machen.


----------



## hankenberge (18. August 2004)

*weiteres programm*

Ich hatte ein ähnliches problem.
ich lese die prozesse mit dem folgendem Tool aus, weil es auf 2000 und XP läuft aus.

http://www.beyondlogic.org/solutions/processutil/processutil.htm

BufferedReader br_runningprozess = new BufferedReader (new InputStreamReader(Runtime.getRuntime().exec("Process.exe").getInputStream()));

mit: String s_process = br_runningprozess.readLine()

kann ich jede einzelen Zeile auslesen. 
Vergleiche dann den Inhalt auf den namen der zu stoppenden .exe, nehme die PID und rufe dann

Runtime.getRuntime().exec("Process.exe -k " + getPID());

ist zwar nicht der schönste weh.. aber es läuft....


----------

