V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MrXiong
V2EX  ›  Java

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

  •  
  •   MrXiong · Nov 13, 2017 · 7489 views
    This topic created in 3095 days ago, the information mentioned may be changed or developed.

    直接 kill 是不是有点不妥?

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

    轻易不要 -9。
    Troevil
        13
    Troevil  
       Nov 13, 2017
    LosLord
        14
    LosLord  
       Nov 13, 2017 via Android
    springboot

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

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

    顺便分享一下,一般我们是先从负载均衡移除了节点之后几分钟再进行关闭,这个时候基本上没用户在请求这个节点了,相对来说比较安全。
    hcymk2
        19
    hcymk2  
       Nov 13, 2017
    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  
       Nov 13, 2017
    一直用 kill -9, 从未出过问题
    riggzh
        21
    riggzh  
       Nov 13, 2017
    @MrXiong kill [uid]
    MrXiong
        22
    MrXiong  
    OP
       Nov 13, 2017
    @odirus 我的服务的更新接口执行得 10 几个小时呢
    hubert3
        23
    hubert3  
       Nov 13, 2017
    @oahoaix 第二个如果装了多个 tomcat 是不是全杀了?
    cxbig
        24
    cxbig  
       Nov 13, 2017
    sudo service APP start|stop|restart|reload
    sudo systemctl start|stop|restart|reload APP.service
    Technetiumer
        25
    Technetiumer  
       Nov 13, 2017 via Android
    service xxxx stop
    gitgit
        26
    gitgit  
       Nov 13, 2017 via Android
    鼠标点击右上角的叉叉,为什么没有和我一样的,或者在 myeclipse 中的控制台中点击红色正方形
    boyhailong
        27
    boyhailong  
       Nov 13, 2017
    kill processnum 程序加钩子处理就行了
    timothyye
        28
    timothyye  
       Nov 13, 2017
    kill -9 PID && sudo rm -rf /
    loveCoding
        29
    loveCoding  
       Nov 13, 2017
    ./shutdown.sh

    如果杀不死,一般是由 deamon 线程引起的.
    abcbuzhiming
        30
    abcbuzhiming  
       Nov 13, 2017
    问这个问题之前难道不应该去看一下官方文档吗?
    qqpkat2
        31
    qqpkat2  
       Nov 13, 2017
    @loveCoding 是的,shutdown.sh 有时候无法关闭 tomcat 这个时候就要用 kill-9 了
    nbstone
        32
    nbstone  
       Nov 13, 2017 via iPhone
    reboot
    liv11d
        33
    liv11d  
       Nov 13, 2017
    楼上的都不行,看我的 telnet 127.0.0.1 : 8005 shutdown
    把 127.0.0.1 替换成对应 的 ip 地址
    privil
        34
    privil  
       Nov 13, 2017
    catalina.sh 话说好像添加一下默认的 pid 文件的设置比较好,不然直接用 catalina.sh stop 停不来下
    ik
        35
    ik  
       Nov 13, 2017 via iPhone
    @riggzh pid or uid ?
    claysec
        36
    claysec  
       Nov 14, 2017
    ./shutdown.sh && shutdown.bat
    panpanpan
        37
    panpanpan  
       Nov 14, 2017
    kill -15 PID
    kylix
        38
    kylix  
       Nov 14, 2017
    我一直用 shutdown.sh ,偶尔关不掉才用 kill
    paragon
        39
    paragon  
       Nov 14, 2017
    docker stop tomcat1
    julyclyde
        40
    julyclyde  
       Nov 14, 2017
    正常情况是 kill TERM
    所谓各种脚本的 stop,其实最终还是 kill TERM
    mineqiqi
        41
    mineqiqi  
       Nov 14, 2017
    shutdown 然后 kill -9
    wooddice
        42
    wooddice  
       Nov 14, 2017
    shutdown.sh 如果不行就 kill -9。。。。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5695 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 114ms · UTC 07:39 · PVG 15:39 · LAX 00:39 · JFK 03:39
    ♥ Do have faith in what you're doing.