老铁们,你们关闭 tomcat 的方式是啥样的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MrXiong
V2EX    Java

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

  •  
  •   MrXiong 2017-11-13 16:35:19 +08:00 7100 次点击
    这是一个创建于 2896 天前的主题,其中的信息可能已经有所发展或是发生改变。

    直接 kill 是不是有点不妥?

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

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

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

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

    顺便分享一下,一般我们是先从负载均衡移除了节点之后几分钟再进行关闭,这个时候基本上没用户在请求这个节点了,相对来说比较安全。
    hcymk2
        19
    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
        20
    zlfzy  
       2017-11-13 16:57:58 +08:00
    一直用 kill -9, 从未出过问题
    riggzh
        21
    riggzh  
       2017-11-13 17:00:04 +08:00
    @MrXiong kill [uid]
    img src="https://cdn.v2ex.com/gravatar/9849d899619cb038d37986adf6d5bddf?s=48&d=retro" class="avatar" border="0" align="default" alt="MrXiong" data-uid="213167" />
        22
    MrXiong  
    OP
       2017-11-13 17:01:55 +08:00
    @odirus 我的服务的更新接口执行得 10 几个小时呢
    hubert3
        23
    hubert3  
       2017-11-13 17:03:19 +08:00
    @oahoaix 第二个如果装了多个 tomcat 是不是全杀了?
    cxbig
        24
    cxbig  
       2017-11-13 17:06:52 +08:00
    sudo service APP start|stop|restart|reload
    sudo systemctl start|stop|restart|reload APP.service
    Technetiumer
        25
    Technetiumer  
       2017-11-13 17:10:05 +08:00 via Android
    service xxxx stop
    gitgit
        26
    gitgit  
       2017-11-13 17:43:03 +08:00 via Android
    鼠标点击右上角的叉叉,为什么没有和我一样的,或者在 myeclipse 中的控制台中点击红色正方形
    boyhailong
        27
    boyhailong  
       2017-11-13 17:57:09 +08:00
    kill processnum 程序加钩子处理就行了
    timothyye
        28
    timothyye  
       2017-11-13 17:58:04 +08:00
    kill -9 PID && sudo rm -rf /
    loveCoding
        29
    loveCoding  
       2017-11-13 19:37:55 +08:00
    ./shutdown.sh

    如果杀不死,一般是由 deamon 线程引起的.
    abcbuzhiming
        30
    abcbuzhiming  
       2017-11-13 21:42:20 +08:00
    问这个问题之前难道不应该去看一下官方文档吗?
    qqpkat2
        31
    qqpkat2  
       2017-11-13 22:03:01 +08:00
    @loveCoding 是的,shutdown.sh 有时候无法关闭 tomcat 这个时候就要用 kill-9 了
    nbstone
        32
    nbstone  
       2017-11-13 22:07:20 +08:00 via iPhone
    reboot
    liv11d
        33
    liv11d  
       2017-11-13 22:45:08 +08:00
    楼上的都不行,看我的 telnet 127.0.0.1 : 8005 shutdown
    把 127.0.0.1 替换成对应 的 ip 地址
    privil
        34
    privil  
       2017-11-13 23:10:05 +08:00
    catalina.sh 话说好像添加一下默认的 pid 文件的设置比较好,不然直接用 catalina.sh stop 停不来下
    ik
        35
    ik  
       2017-11-13 23:14:58 +08:00 via iPhone
    @riggzh pid or uid ?
    claysec
        36
    claysec  
       2017-11-14 01:07:30 +08:00
    ./shutdown.sh && shutdown.bat
    panpanpan
        37
    panpanpan  
       2017-11-14 10:02:02 +08:00
    kill -15 PID
    kylix
        38
    kylix  
       2017-11-14 10:10:03 +08:00
    我一直用 shutdown.sh ,偶尔关不掉才用 kill
    paragon
        39
    paragon  
       2017-11-14 10:45:19 +08:00
    docker stop tomcat1
    julyclyde
        40
    julyclyde  
       2017-11-14 11:54:44 +08:00
    正常情况是 kill TERM
    所谓各种脚本的 stop,其实最终还是 kill TERM
    mineqiqi
        41
    mineqiqi  
       2017-11-14 14:57:27 +08:00
    shutdown 然后 kill -9
    wooddice
        42
    wooddice  
       2017-11-14 16:03:38 +08:00
    shutdown.sh 如果不行就 kill -9。。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2552 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 10:35 PVG 18:35 LAX 03:35 JFK 06:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86