调用tomcat关机脚本和查杀进程之间的区别

在我们的Linux机器上,我们有多个运行tomcat的用户。

目前我们正在使用进程kill命令来杀死相应用户的tomcat,而不是使用shutdown.sh

使用这种方法有什么缺点吗?

这取决于你正在使用的kill信号:

  • 如果你使用TERM (数值相当于kill -15 ),理论上你是让java进程发信号给它的subprocess并以正确的方式退出。

  • 如果你使用KILLkill -9 ), 那么你就不会这么做了 ,而且你还留下了各种各样的临时文件,套接字等。

也就是说, tomcat有自己的机制可以正常closures,也就是你应该直接使用的RMI调用,或者使用你的操作系统的接口: servicestartsystemctl或其他。

如果因为某种原因你不能这样做,你可以使用一些包装如tanukiwrappersupervisord ,也有一个网页前端的帮助。

如果使用Tomcat的closures脚本或使用kill -15,则在行为上没有区别。 最终的结果是完全一样的 – 一个干净的closures。 唯一的区别是启动closures过程的代码path略有不同。