Tomcat启动没反应且日志也不刷新的解决方案
问题描述
在 Linux
上将应用部署到 Tomcat
后,运行 bin
目录下的脚本 sh startup.sh
启动 Tomcat
,脚本运行没有提示报错,但是用 ps
命令查看进程发现没有相应进程(即进程没有启动)。然后怀疑可能是 Tomcat
启动报错了,但是更奇怪的是,Tomcat
的日志没有刷新。
问题分析
一般情况下,当软件程序运行不正常时,我们会通过软件程序的相应日志去分析软件程序为什么运行不正常,以便找到问题根因之后给出解决方案。但是上面提到的问题情形,有点像下面这段伪代码展示的情形一样,捕获了程序处理逻辑抛出的异常错误,但是什么也没有做(既没有往外层抛出异常,也没有自己处理这个异常,干脆连日志也没有打印),让人无从下手。
try {
// 程序处理逻辑
...
} catch (Exception e) {
// do nothing
}
经过一番折腾,经网友建议,运行 sh catalina.sh run
命令可以让 Tomcat
直接在控制台打印日志。
Tomcat
bin
目录下的脚本startup.sh
以及shutdown.sh
等脚本其实最终会调用catalina.sh
问题解决
运行 sh catalina.sh run
命令,发现控制台能够打印出报错日志,之后再根据具体日志反应的问题进行处理。