老铁们,你们关闭 tomcat 的方式是啥样的?

2017-11-13 16:35:19 +08:00
 MrXiong

直接 kill 是不是有点不妥?

6669 次点击
所在节点    Java
42 条回复
aver4vex
2017-11-13 16:36:18 +08:00
systemctl stop tomcat
MrXiong
2017-11-13 16:37:05 +08:00
@aver4vex 和 kill -9 有区别吗
zpf124
2017-11-13 16:39:12 +08:00
shutdown 脚本执行不好使么...
my3157
2017-11-13 16:39:22 +08:00
service tomcat7 stop
aristotll
2017-11-13 16:39:54 +08:00
@MrXiong #2 -9 绝对是不建议用的
MrXiong
2017-11-13 16:40:07 +08:00
@zpf124 不知道,据说公司的运维都是 kill,如果直接 kill,那代码里加的 jvm 钩子岂不是失效了?
jyf007
2017-11-13 16:41:31 +08:00
/t/400120#reply15
大家好我是那头老牛,当然还是直接 kill
riggzh
2017-11-13 16:42:48 +08:00
@MrXiong kill -9 回失效,直接 kill 不会
oahoaix
2017-11-13 16:42:50 +08:00
./shutdown.sh
service tomcat stop
MrXiong
2017-11-13 16:45:19 +08:00
@riggzh 你指的直接 kill 是啥
aver4vex
2017-11-13 16:46:28 +08:00
@MrXiong 这是用 tomcat 自己的命令停止的服务的 /usr/local/tomcat/bin/catalina.sh stop,相对来说比直接 kill 好很多。
zpf124
2017-11-13 16:46:49 +08:00
@MrXiong 区别巨大...
程序的退出方式简单来说应该是分三种的,
1,程序自带结束命令,程序自己去处理结束的流程,例如端口资源什么的。
2,kill,kill 命令会给对应进程发一个退出信号,之后的处理就和上一个类似,程序自己去结束资源什么的,然后返回。
3,kill -9, 强制结束,不论进程是不是在读写数据调用资源,直接杀死。

轻易不要 -9。
Troevil
2017-11-13 16:47:07 +08:00
LosLord
2017-11-13 16:47:36 +08:00
springboot

xxxxx.jar stop
MrXiong
2017-11-13 16:49:02 +08:00
@zpf124 谢谢很详细
psirnull
2017-11-13 16:49:41 +08:00
halt
zpf124
2017-11-13 16:51:15 +08:00
举个例子,你正在给系统装 GUI,程序跑一半,你发现你一个服务器用不着图形界面,于是要停止这个操作。

用 命令 自带的 stop 或者 普通的 kill,那程序可能会 1 分多钟才关闭,因为可能它还会将已经修改的内容还原回去。
而 kill -9 直接就停了,半成品的文件就扔那了。
odirus
2017-11-13 16:51:22 +08:00
使用 shutduwn.sh 比较安全

顺便分享一下,一般我们是先从负载均衡移除了节点之后几分钟再进行关闭,这个时候基本上没用户在请求这个节点了,相对来说比较安全。
hcymk2
2017-11-13 16:54:51 +08:00
Usage: catalina.sh ( commands ... )
commands:
debug Start Catalina in a debugger
debug -security Debug Catalina with a security manager
jpda start Start Catalina under JPDA debugger
run Start Catalina in the current window
run -security Start in the current window with security manager
start Start Catalina in a separate window
start -security Start in a separate window with security manager
stop Stop Catalina, waiting up to 5 seconds for the process to end
stop n Stop Catalina, waiting up to n seconds for the process to end
stop -force Stop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -force Stop Catalina, wait up to n seconds and then use kill -KILL if still running
configtest Run a basic syntax check on server.xml - check exit code for result
version What version of tomcat are you running?
zlfzy
2017-11-13 16:57:58 +08:00
一直用 kill -9, 从未出过问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/406023

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX