2014-07-14 58 views
7

雖然JVM將translate SIGTERM and similar signals to shutdown hooks, 許多服務關閉腳本使用TCP端口來啓動關閉。 (例如Tomcat的關閉端口,Java Service Wrapper,JBoss的管理接口等)將SIGTERM發送到JVM是否安全

所以我想使用信號和關閉鉤子正常關閉Java服務氣餒,直到我發現,產生Play! framework is managing the service lifecycle with shutdown hooks和啓動腳本由play dist假設一個信號將被髮送到JVM的PID。

我知道信號是依賴於平臺的,使用TCP端口是一種以跨平臺方式管理服務的簡單且可擴展的方式,但我想知道它是多麼安全以及我需要考慮哪些風險,當我依賴SIGTERM並關閉掛鉤作爲服務關閉的主要方法時。

回答

1

只要Java服務明智地使用ShutdownHooks來有序終止,發送SIGTERM到JVM進程就沒有問題。例如。我們使用SIGTERM作爲在我們的大型高負載生產系統(運行80個不同Java應用程序的5000多臺服務器)中啓動應用程序關閉的主要方法。

相關問題