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

相关推荐
七七powerful几秒前
Docker 容器化 GPU 压测工具(压测单卡)
运维·docker·容器
燃于AC之乐1 分钟前
【Linux系统编程】Shell解释器完全实现:从命令解析、环境变量管理到内建命令的全面解析
linux·操作系统·命令行工具·进程控制·shell编程
AZ996ZA5 分钟前
自学linux第十九天:Cron定时任务完全指南:从入门到排错
linux·运维·服务器
HIT_Weston9 分钟前
117、【Ubuntu】【Hugo】首页板块配置:Branch Bundle
linux·运维·ubuntu
fiveym9 分钟前
服务器硬件管控接口学习笔记:IPMI与Redfish深度解析+实操调研
服务器
belldeep11 分钟前
Java:Tomcat 9, flexmark 0.6 和 mermaid.min.js 10.9 实现 Markdown 中 Mermaid 图表的渲染
java·tomcat·mermaid·flexmark
Sapphire~12 分钟前
Linux-14 ubuntu 安装 vscode
linux·vscode·ubuntu
HalvmånEver15 分钟前
Linux:线程创建与终止下(线程六)
linux·运维·算法
夏旭泽18 分钟前
计算机网络-网络层
服务器·网络·计算机网络
_周游19 分钟前
Java8 API文档搜索引擎_优化构建索引速度
java·服务器·搜索引擎·intellij-idea