zoukankan      html  css  js  c++  java
  • Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程

    Linux下tomcat的shutdown命令可以关闭服务但是杀不死进程

    原因:

    一般造成这种原因是因为项目中有非守护线程的存在;

    解决方案:

    一、从Tomcat上解决

    方案1:(推荐的方案:因为一台机器里可能有很多tomcat,不能kill所有)

    基本原理为启动tomcat时记录启动tomcat的进程id(pid),关闭时强制杀死该进程

    (1),在tomcat/bin/catalina.sh脚本的代码前,加入以下语句:

    ##################################################
    if [ -z "$CATALINA_PID" ]; then
        CATALINA_PID=$PRGDIR/CATALINA_PID
        cat $CATALINA_PID
    fi
    ##################################################

    (2),在tomcat/bin/shutdown.sh文件,在最后一行加上-force:

    原来的     exec "$PRGDIR"/"$EXECUTABLE" stop "$@"  
    增加参数后  exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"

    方案2:(查找到所有的tomcat进程,然后逐一杀死它们)

    #查找到所有的tomcat进程
    #ps -ef | grep tomcat
    
    #然后逐一杀死它们
    #kill -9 pid

    方案3:(一次性杀死所有的tomcat进程)

    #kill -9 `ps -ef|grep tomcat|awk '{print $2}'`

    二、从程序上解决

    方案1:(要求较高,项目底层代码的修改)

    在项目中找到对应new Thread的地方setDaemon(true),后面shutdown就没有tomcat进程了;

  • 相关阅读:
    解决SecureCRT中文显示乱码
    能大大提升工作效率和时间效率的9个重要习惯
    PHP基础知识
    CI学习相关地址
    IE8引入JavaScript
    IE9以下不支持placeholder属性
    IE8浏览器兼容性问题
    简单的DOS命令
    Linux常用运维指令
    log4j日志+面向切面监控异常
  • 原文地址:https://www.cnblogs.com/lizm166/p/7992318.html
Copyright © 2011-2022 走看看