You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7安装Tomcat9后tomcat.service启动失败且8005端口占用问题求助

问题解决步骤

问题根因

8005端口是Tomcat默认的服务停止监听端口,当前已被之前启动的残留Tomcat进程占用,导致systemd启动新的Tomcat实例时端口绑定失败,触发服务异常。

第一步:清理占用端口的残留进程

  • 先查询占用8005端口的进程PID:
netstat -tulpn | grep 8005

输出结果中最后一列的进程号/进程名中的数字就是占用端口的PID,比如1234/java中的1234就是目标PID。

  • 终止该残留进程:
kill -9 <替换为上一步查到的PID>
  • 再次检查端口是否释放,确认无输出则说明清理完成:
netstat -an | grep 8005
  • 删除残留的PID文件,避免启动时的 stale PID 警告:
rm -f /opt/tomcat/latest/temp/tomcat.pid

第二步:修正服务权限配置

不需要将个人登录用户配置到tomcat.service中,保持默认的tomcat用户运行即可,修正目录权限和服务配置:

  • 重置Tomcat安装目录的所有者为tomcat用户组:
sudo chown -R tomcat:tomcat /opt/tomcat/latest/
  • 确认/etc/systemd/system/tomcat.service中的User和Group配置保持如下,不要修改为个人用户:
User=tomcat
Group=tomcat

第三步:重启Tomcat服务

  • 重载systemd配置使修改生效:
sudo systemctl daemon-reload
  • 启动Tomcat服务:
sudo systemctl start tomcat
  • 查看服务状态确认正常运行:
sudo systemctl status tomcat

可选:修改默认停止端口避免冲突

如果8005端口被其他必须运行的服务占用无法释放,可修改Tomcat停止端口:

  • 编辑Tomcat核心配置文件:
vi /opt/tomcat/latest/conf/server.xml
  • 找到如下配置行,将8005修改为未被占用的端口(例如8015):
<Server port="8005" shutdown="SHUTDOWN">
  • 保存退出后重启Tomcat服务即可。

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 20:48:02