一、问题描述:tomcat执行shutdown.sh之后进程还存在
原因:项目中存在非守护线程Thread.currentThread().setDaemon(false);
二、解决方法(已验证,方便)
1、在catalina.sh添加如下内容
if [ -z "$CATALINA_PID" ];thenCATALINA_PID=$PRGDIR/CATALINA_PIDfi
2、在shutdown.sh添加如下内容
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
三、解决方法(已验证)
1、修改shutdown.sh
最后一句修改为
exec “$PRGDIR”/“$EXECUTABLE” stop -force “$@”
2、修改catalina.sh文件
新增
CATALINA_PID=./CATALINA_PID
3、新增catalina.pid文件
cd /var/runmkdir pxf
cd pxf/
ps -ef | grep pxf(显示的ID为4845)
echo 4845 > catalina.pid
查看是否写入:
cat /var/run/pxf/catalina.pid
[
](https://blog.csdn.net/ZhouyuanLinli/article/details/78085356)
另外一种方法:https://blog.csdn.net/shenxiaomo1688/article/details/105837864(未验证)

