Ubuntu上Tomcat启动失败怎么解决
导读:Ubuntu上Tomcat启动失败的排查与修复 一、先看日志定位根因 查看标准输出与错误日志,优先关注:catalina.out、catalina.log、localhost.log。常见路径为:/var/log/tomcat/ 或 $C...
Ubuntu上Tomcat启动失败的排查与修复
一、先看日志定位根因
- 查看标准输出与错误日志,优先关注:catalina.out、catalina.log、localhost.log。常见路径为:/var/log/tomcat/ 或 $CATALINA_HOME/logs/。
示例:- less /var/log/tomcat/catalina.out
- tail -f $CATALINA_HOME/logs/catalina.out
- grep -i ‘error|exception’ $CATALINA_HOME/logs/catalina.out
- 若使用包管理器安装的 Tomcat(如 apt),日志通常在 /var/log/tomcat/;源码/二进制包解压的 Tomcat 日志在解压目录的 logs/。
- 实时观察启动过程并过滤错误,有助于快速锁定问题行。
二、常见原因与对应修复
- 端口被占用(默认 8080)
检查并释放端口:- lsof -i:8080
- netstat -anp | grep 8080
处理:结束占用进程或修改 $CATALINA_HOME/conf/server.xml 中的 为未占用端口,重启 Tomcat。
- Java 环境或版本不匹配
检查:java -version、which java。
处理:安装合适版本的 JDK,并正确设置 JAVA_HOME(以及可选的 JRE_HOME、CLASSPATH、PATH)。注意 JDK 与 Tomcat 版本兼容。 - 环境变量未生效或被脚本覆盖
现象:启动脚本报 “Neither the JAVA_HOME nor the JRE_HOME environment variable is defined”。
处理:在 ~/.bashrc 或 ~/.profile 中导出变量(如:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64),执行 source 使其生效;或在 $CATALINA_HOME/bin/setclasspath.sh 开头显式设置 JAVA_HOME/JRE_HOME。 - 安装包错误(源码包当二进制包用)
现象:执行 startup.sh 后无监听、页面打不开。
处理:下载并使用 Binary Distributions(包含 bootstrap.jar),不要使用 Source Code Distributions。 - 随机数生成阻塞导致“卡住不继续”
现象:启动到加载项目阶段长时间无进展。
处理:在 $JAVA_HOME/jre/lib/security/java.security 将 securerandom.source 改为 file:/dev/./urandom;或在 $CATALINA_HOME/bin/setenv.sh 中加入:CATALINA_OPTS=“-Djava.security.egd=file:/dev/./urandom”。 - 权限或目录错误
处理:确保 Tomcat 目录及子目录对运行用户可读写执行;确认启动脚本使用的 服务绝对路径正确。
三、快速自检命令清单
- 环境与健康:
- java -version & & which java
- echo $JAVA_HOME & & echo $JRE_HOME
- ps -ef | grep tomcat
- ss -lntp | grep 8080
- 日志与端口联动:
- tail -f $CATALINA_HOME/logs/catalina.out &
- lsof -i:8080 或 netstat -anp | grep 8080
- 启动与重启:
- $CATALINA_HOME/bin/startup.sh
- sudo systemctl restart tomcat(若以服务方式安装)
- 防火墙(如启用 UFW):
- sudo ufw allow 8080/tcp
四、仍无法启动时的建议
- 以最小配置启动:备份并临时移走 webapps 下应用,仅保留 ROOT,排除应用导致的初始化失败。
- 使用官方二进制包在相同 JDK 版本下重试;对比 server.xml 与 logging.properties 是否被误改。
- 检查系统资源(磁盘、内存)与系统日志(如 dmesg、journalctl),避免 OOM 或磁盘满导致进程异常退出。
- 若通过脚本或自动化平台部署,核对 服务绝对路径与执行用户权限是否正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上Tomcat启动失败怎么解决
本文地址: https://pptw.com/jishu/758207.html
