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

  • 相关阅读:
    UVA
    剑指offer 面试题11
    SharePoint 2013+ Sqlserver 2014 Kerberos 配置传奇, 最终的解决方案 验证。
    ASC(1)G(上升时间最长的序列)
    J2EE它是一个框架?平台?规范?
    C++和python使用struct传输二进制数据结构来实现
    前端开发面试题集(二)
    C语言中<CR>是什么意思
    Delphi ParamStr 使用方法
    打包工具 使用帮助 inno setup
  • 原文地址:https://www.cnblogs.com/ylz8401/p/6082242.html
Copyright © 2011-2022 走看看