以前基本上使用的都是tomcat windows版本的,这次部署linux的版本,发现shutdown.sh执行后,tomcat进程居然还在。网上搜了下解决方法,实测ok:
在 CentOS 下 shutdown.sh 发现 tomcat 并没有关闭,进程还在
ps -ef | grep tomcat
网上找到的解释:原因是因为项目中有非守护线程的存在。
解决方案
第一步 :vim修改tomcat下bin/catalina.sh文件,添加点东西,主要是记录tomcat的pid,如下:
PRGDIR=`dirname "$PRG"`
在上一行后添加如下行:
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi
第二步 vim tomcat的shutdown.sh文件,在最后一行加上-force:
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"