解决Tomcat没法shutdown进程

问题分析

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

难道是Tomcat版本问题?或者用带内存泄漏保护的Tomcat 7能够解决该问题?尝试将web应用跑在apache-tomcat-6.0.1八、apache-tomcat-6.0.3五、apache-tomcat-7.0.34,发现均存在没法shutdown.sh进程问题。 apache

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

解决方案

如今已经肯定是web应用的问题了,因此能够提解决方案了。 tomcat

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

忽略日志中的严重警告,由于这是关闭tomcat时候引发的,正常状况下不会发生这种内存泄露状况,并且Tomcat6.18以上版本的Tomcat已经作了内存泄露保护,交给Tomcat完成吧,咱们只须要在shutdown.sh以后,补上一个kill -9 pid便可。要是嫌这样太麻烦了,能够以下这样改: app

==============================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
相关文章
相关标签/搜索