我有一個運行在Linux服務器上的Java應用程序。當它開始時,它將進程ID記錄到「pidfile」。有什麼辦法通過進程ID關閉Java應用程序?
當我關閉它,我只是從文件中讀取的PID,並殺死它:
kill -9 12345
但其他人說,它是不是安全,相反,他們建議我到嵌入小型的http服務器,並提供HTTP API用於關閉,如:
http://localhost:8080/close
當我想關閉它,我需要訪問它:
curl http://localhost:8080/close
它工作但很無聊,我仍然更喜歡「進程ID」的方式。有什麼方法可以使用進程ID來安全關閉應用程序?
更新:
「安全」在這裏,我的意思是我可以取消它可以將文件寫入到磁盤中的一些正在運行的任務並在退出之前關閉一些資源。
取決於你的安全意味着什麼?我猜「人們」是說爲了讓Java進程清理和關閉資源,但是如果這與你無關,那就不要打擾了(儘管'kill -HUP'可能會更好一些......) –
@ AndersR.Bystrup謝謝,我剛剛更新了我的問題 – Freewind