cd /tomcat路径/bin
,2. 执行关闭脚本:./shutdown.sh
,3. 强制终止(若无脚本):kill -9 $(ps -ef | grep tomcat | grep -v grep | awk '{print $2}')
标准方法:使用Tomcat自带脚本
Tomcat的bin
目录提供专用脚本,推荐优先使用:
- 切换到脚本目录
cd /opt/tomcat/bin # 根据实际安装路径调整
- 执行关闭脚本
./shutdown.sh # 普通用户执行 # 或 sudo ./shutdown.sh # 需root权限时
- 验证关闭
查看日志确认:tail -f ../logs/catalina.out
出现
org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["http-nio-8080"]
表示正常关闭。
强制终止:使用kill命令
当脚本失效时(如进程卡死),通过系统命令终止:
-
查找Tomcat进程PID
ps -ef | grep tomcat
输出示例:
tomcat 12345 1 0 10:30 ? 00:00:05 /usr/bin/java ... org.apache.catalina.startup.Bootstrap
记录PID(如
12345
)。 -
发送终止信号
kill -9 12345 # 强制终止 # 或先尝试友好终止 kill 12345 # 发送SIGTERM信号
验证Tomcat状态
确保进程已停止:
ps -ef | grep tomcat # 应无相关进程 netstat -tuln | grep 8080 # 检查端口释放(默认8080)
常见问题解决
-
端口占用无法关闭
若关闭后端口仍被占用,重启系统或查找残留进程:lsof -i :8080 # 查看占用进程 kill -9 <PID> # 强制终止
-
权限不足导致脚本失败
确保用户对Tomcat目录有执行权限:chmod +x /opt/tomcat/bin/*.sh
-
关闭后自动重启
检查是否配置了守护进程(如systemd服务):systemctl stop tomcat # 若通过systemd管理
安全关闭的重要性
- 数据完整性
强制kill -9
可能导致事务中断,仅应在脚本失效时使用。 - 资源释放
正常关闭会释放数据库连接、线程池等资源。 - 日志记录
catalina.out
会记录关闭事件,便于故障排查。
引用说明基于Apache Tomcat官方文档的操作指南及Linux进程管理实践,关键参考来源:
- Apache Tomcat 9 Documentation: Shutdown Script
- Linux man pages:
kill(1)
,ps(1)
- Oracle Java进程管理最佳实践
通过以上步骤,您可安全关闭Tomcat服务,生产环境中建议始终首选shutdown.sh
脚本,并定期检查日志以确保操作合规性。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/32806.html