尽管JVM会translate SIGTERM and similar signals to shutdown hooks
许多服务关闭脚本使用TCP端口启动关闭。 (例如Tomcat的关闭端口,Java Service Wrapper,JBoss的管理界面等)

因此,我认为不建议使用信号和关闭钩子(Hook)来正常关闭Java服务,直到发现Play! framework is managing the service lifecycle with shutdown hooksplay dist生成的启动脚本都假定将信号发送到JVM的PID为止。

我知道信号是与平台相关的,并且使用TCP端口是一种以跨平台方式管理服务的简单且可扩展的方式,但是我想知道信号的安全性以及当我依赖时需要考虑的风险SIGTERM和关闭挂接上的关闭是服务关闭的主要方法。

最佳答案

只要Java服务明智地使用ShutdownHooks进行有序终止,就可以将SIGTERM发送到JVM进程没有问题。例如。我们使用SIGTERM作为在大型高负载生产系统(5000台服务器中运行80个不同Java应用程序)中启动应用程序关闭的主要方法。

关于java - 将SIGTERM发送到JVM是否安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24728586/

10-12 02:10