在我们的Linux机器上,我们有多个运行tomcat的用户。
目前我们正在使用进程kill命令来杀死相应用户的tomcat,而不是使用shutdown.sh
使用这种方法有什么缺点吗?
这取决于你正在使用的kill
信号:
如果你使用TERM
(数值相当于kill -15
),理论上你是让java
进程发信号给它的subprocess并以正确的方式退出。
如果你使用KILL
( kill -9
), 那么你就不会这么做了 ,而且你还留下了各种各样的临时文件,套接字等。
也就是说, tomcat
有自己的机制可以正常closures,也就是你应该直接使用的RMI调用,或者使用你的操作系统的接口: service
, start
, systemctl
或其他。
如果因为某种原因你不能这样做,你可以使用一些包装如tanukiwrapper
或supervisord
,也有一个网页前端的帮助。
如果使用Tomcat的closures脚本或使用kill -15,则在行为上没有区别。 最终的结果是完全一样的 – 一个干净的closures。 唯一的区别是启动closures过程的代码path略有不同。