在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服务已经成功关闭。

相关推荐
恒创科技HK4 分钟前
2026年香港服务器走CN2线路具有哪些优势?
运维·服务器
释怀不想释怀12 分钟前
linux常见安装(JDK,mysql,nginx)
linux·运维·服务器
杰克崔15 分钟前
do_exit的hungtask问题及coredump的实验及原理分析一
linux·运维·服务器·车载系统
BigBigHang21 分钟前
【docker】cloudbeaver的docker-compose及一些踩坑
运维·docker·容器
pengdott21 分钟前
Linux进程数据结构与组织方式深度解析
linux·运维·服务器
Java 码农22 分钟前
gitlab gitrunner springboot 多环境多分支部署 (非容器方式,使用原生linux 环境)
linux·spring boot·gitlab
小快说网安34 分钟前
等保测评通过后,如何持续满足安全运维要求?
运维·安全·网络安全·等保测评
闲过信陵饮~37 分钟前
无头服务器 + Vulkan + Docker 问题
运维·docker·容器
科技块儿37 分钟前
【需求:GDPR合规下做地域定向】解决方案:仅用IP离线库输出国家码,不存原始IP?
服务器·网络·tcp/ip
LongQ30ZZ37 分钟前
Linux的常见指令
linux·服务器