V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MrXiong
V2EX  ›  Java

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

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

    直接 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]
    MrXiong
        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   ·   实用小工具   ·   908 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:06 · PVG 06:06 · LAX 14:06 · JFK 17:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.