在Linux中tomcat执行shutdown.sh之后进程还存在

第一步,tomcat执行shutdown.sh之后进程还存在,我们可以发现项目中存在非守护线Thread.currentThread().setDaemon(false);。

第二步,配置/usr/local/tomcat/bin/catalina.sh文件,可以记录tomcat进程PID。

在/usr/local/tomcat/bin/catalina.sh文件中添加代码得到下面的内容:

复制代码
# Get standard environment variables

PRGDIR=`dirname "$PRG"`

if [ -z "$CATALINA_PID" ]; then

      CATALINA_PID=$PRGDIR/CATALINA_PID

fi

第三步,配置/usr/local/tomcat/bin/shutdown.sh文件,使得shutdown时强制关闭进程。

在/usr/local/tomcat/bin/shutdown.sh文件中修改最后一行代码得到下面的内容:

复制代码
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"

第四步,验证。

先进入/usr/local/tomcat/bin文件夹,使用命令"./startup.sh"启动tomcat服务,可以发现结果的最后一行显示启动tomcat服务时使用了CATALINA_PID。

然后使用命令"./shutdown.sh"关闭tomcat服务,可以发现结果的最后两行显示已经kill掉了tomcat进程。

最后使用命令"ps -ef|grep tomcat"查看,可以发现tomcat进程已经不存在了,tomcat服务已经成功关闭。

相关推荐
rannn_11113 小时前
【Redis|高级篇3】Redis最佳实践|键值设计、批处理优化、服务端优化、服务器优化、集群还是主从
java·服务器·redis·后端·缓存
aXin_ya13 小时前
微服务 第一天
java·运维·微服务
俺不要写代码13 小时前
Linux上一个简单的echo服务器搭建
linux·运维·服务器
努力努力再努力wz13 小时前
【MySQL入门系列】:不只是建表:MySQL 表约束与 DDL 执行机制全解析
android·linux·服务器·数据结构·数据库·c++·mysql
前端技术13 小时前
负载均衡组件 -loadBalancer 无法获取服务端信息问题
运维·负载均衡
bukeyiwanshui13 小时前
20260416 DHCP以及DNS
linux·网络
zhojiew13 小时前
在中国区aws通过Network Flow Monitor实现实例网络流量指标上传到cloudwatch
服务器·网络·aws
ALex_zry13 小时前
Converter双向转换的边界条件处理
运维·服务器·建造者模式
IMPYLH14 小时前
Linux 的 printf 命令
linux·运维·服务器·bash