解決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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM