Tomcat服务启动失败(权限拒绝)问题修复咨询
Tomcat服务启动失败(权限拒绝)问题修复咨询
从你提供的systemd日志和服务配置文件来看,问题的核心很明确:tomcat用户没有执行/usr/local/tomcat10-server/bin/catalina.sh脚本的权限,导致服务启动时触发了Permission denied错误。下面是一步步的修复方案:
1. 修复脚本的执行权限
首先要确保catalina.sh以及Tomcat bin目录下的所有脚本都具备可执行权限,执行以下命令:
# 给catalina.sh添加执行权限 sudo chmod +x /usr/local/tomcat10-server/bin/catalina.sh # 一次性给bin目录下所有.sh脚本添加执行权限(推荐) sudo chmod +x /usr/local/tomcat10-server/bin/*.sh
2. 确保Tomcat目录的所有权正确
Tomcat的整个安装目录应该归tomcat用户和组所有,这样服务进程才能正常读取、写入配置和运行文件。执行递归修改所有权的命令:
sudo chown -R tomcat:tomcat /usr/local/tomcat10-server/
3. 重新加载systemd配置并重启服务
修改权限后,需要让systemd重新读取服务配置,再尝试启动Tomcat:
# 重新加载systemd服务配置 sudo systemctl daemon-reload # 启动Tomcat服务 sudo systemctl start tomcat.service # 查看服务状态确认是否恢复正常 sudo systemctl status tomcat.service
额外排查点(如果上述步骤无效)
- 检查
JAVA_HOME路径/usr/lib/jvm/jre-17-openjdk是否存在,且tomcat用户有访问该目录的权限 - 确认
/usr/local/tomcat10-server/temp目录存在且权限正确,tomcat用户需要在这里创建tomcat.pid文件。如果目录不存在,执行:sudo mkdir -p /usr/local/tomcat10-server/temp sudo chown tomcat:tomcat /usr/local/tomcat10-server/temp
备注:内容来源于stack exchange,提问作者Rickson Costa




