# Kill eines Java-Prozesses und Stop-Prozess



## reibi (23. Apr 2009)

Hallo

Habe folgende Fragen:

1.) Wie kann man ein Killaufruf auf meinem Java-Prozess abfangen und das Programm ordentlich beenden

2.) Gibt es einen anständigen Weg  ein Prozess mit Endlosschleife zu beenden. 
Beispiel: Tomcat-Server, da gibts ja Start- und Stopscript. Das is mir aber zu komplex hinter das Prinzip zu kommen
.

Kann das jemand erklären?

Danke und Grüssli ;-)


----------



## Ebenius (23. Apr 2009)

reibi hat gesagt.:


> 1.) Wie kann man ein Killaufruf auf meinem Java-Prozess abfangen und das Programm ordentlich beenden


Auf SIGTERM (In Windows _Task beenden_ / _Dienst stoppen_) kannst Du mit ShutdownHooks reagieren. Auf SIGKILL (In Windows _Prozess beenden_) kannst Du gar nicht reagieren (weder mit Java noch anders).



reibi hat gesagt.:


> 2.) Gibt es einen anständigen Weg  ein Prozess mit Endlosschleife zu beenden.


ShutdownHook und kill SIGTERM von außen ist super; finde ich.

Ebenius


----------



## reibi (23. Apr 2009)

Hallo

Also ich meinte erstmal grundsätzlich unter UNIX.

ich hab zb n Prozess laufen der ziemlich wichtige Sachen macht. Wenn jetzt ein Kill-aufruf kommt, dann soll er wenigstens seinen Prozesschritt noch beenden bevor er die nächste Runde der Schleife eingeht ... verstehste ?

Hatte das was mit den "ShutdownHooks" zu tun?


----------



## Ebenius (23. Apr 2009)

Ahso. Damit ist eine Lösung über ShudtownHook wahrscheinlich nicht so cool.

Du könntest Dich an einem eigenen Signal-Handler versuchen... 
Switching off OS signals at runtime - Java Tutorials
Signal Handling in Java
Integrating Signal and Exception Handling - Troubleshooting Guide for Java SE 6 with HotSpot VM

Du könntest aus dem Prozess einen ServerSocket öffnen und auf einen bestimmten Befehl die Applikation herunterfahren...

Ebenius


----------

