Ich habe eine Anwendung geschrieben in Java, die auf Unix läuft und startet zwei Unterprozesse (über Runtime.getRuntime().exec()
) beim Start. Wenn die Anwendung aus irgendeinem Grund abgestürzt ist, werden die Unterprozesse nicht gelöscht.Java: Kill alle Subprozesse auf Unix
Jetzt habe ich einen Shutdown Hook hinzugefügt, der bei jedem Absturz ausgelöst wird, ok bis jetzt. Aber ich möchte ein SIGTERM-Signal (oder zumindest SIGINT) auf der UNIX-Konsole für jeden Teilprozess der Anwendung senden. Ich sollte ihre Prozess-IDs über ps
finden können, aber ich habe es nicht geschafft, die PID korrekt zu extrahieren und für jeden Prozess ein Signal zu senden.
Kann jemand helfen?
Vielen Dank!
Ich bin mir nicht sicher, aber tun, was Sie wollen in einem Shell-Skript, d. H. Prozess durch Liefern von PID dann im Shell-Skript selbst töten. Rufen Sie dieses Skript in Java auf. – Ved
Wenn Ihre Anwendung einen bestimmten Namen hat, könnte pkill mit diesem Namen arbeiten. – tartar
ein anderer Stub vielleicht hier [1] http://blog.igorminar.com/2007/03/one-more-way-how-to-get-current-pid-in.html – tartar