zoukankan      html  css  js  c++  java
  • 解决Tomcat无法shutdown进程

    转自:
    http://my.oschina.net/yongyi/blog/405198

    问题分析

    这个在windows下没有碰到过,因为此前跑Tomcat都是以服务而不是命令脚本的形式跑的,而且已经换了一个项目,所以暂时不考察windows下是否存在该问题。

    难道是Tomcat版本问题?或者用带内存泄漏保护的Tomcat 7可以解决该问题?尝试将web应用跑在apache-tomcat-6.0.18、apache-tomcat-6.0.35、apache- tomcat-7.0.34,发现均存在无法shutdown.sh进程问题。

    难道在CentOS(Linux)下,Tomcat无法用shutdown.sh停掉进程?显然不可能的。于是又把web应用从webapps中移走,换 回tomcat自带的ROOT,果然启动后再shutdown.sh,查找不到原来的tomcat进程了,也就证明了是自己web应用的问题了。

    解决方案

    现在已经确定是web应用的问题了,所以可以提解决方案了。

     Kill进程,修改tomcat bin目录下shutdown.sh和catalina.sh文件

    忽略日志中的严重警告,因为这是关闭tomcat时候引起的,正常情况下不会发生这种内存泄露情况,而且Tomcat6.18以上版本的Tomcat已经 做了内存泄露保护,交给Tomcat完成吧,我们只需要在shutdown.sh之后,补上一个kill -9 pid即可。要是嫌这样太麻烦了,可以如下这样改:

    ==============================bin/shutdown.sh
    exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@" #加上 -force  

    ==============================bin/catalina.sh 在PRGDIR=`dirname "$PRG"`后面加上
    if [ -z "$CATALINA_PID" ]; then
    CATALINA_PID=$PRGDIR/CATALINA_PID
    cat $CATALINA_PID
    fi

  • 相关阅读:
    MySQL的事务和视图
    MySQL中的常用函数
    高级查询(一)
    街道管理系统
    深入.NET平台和C#编程的错题
    appium python下的API方法
    Charles 使用教程
    appium,iOS下,ios_predicate等定位方式
    Linux -常用命令
    python-列表以及相关函数认识
  • 原文地址:https://www.cnblogs.com/ylz8401/p/6082242.html
Copyright © 2011-2022 走看看