关于运行健康项目的tomcat无法常规关闭现象
20170510 11:29
操作备注:关于健康项目运行后,tomcat无法正常关闭问题的分析。现象:(1)执行tomcat的终止命令之后,使用进程查看命令仍能查看到该tomcat的进程信息存在。(2)基于此重新启动该tomcat,会同时出现两个运行该项目的tomcat进程。
参考资料:
tomcat关不掉的原因———————通过jdk工具jstack[间接、侧面]查看线程信息
http://tuhaitao.iteye.com/blog/1122935
tomcat-quartz appears to have started a thread named [startQuertz_Worker-1] but has failed to stop it———————通过[直接、正面]日志方式查看tomcat关闭过程中的报错
http://www.tuicool.com/articles/JZV32a
备注:主线程“main”的类型就是非daemon的。
分析步骤如下:
Part1 借用jstack工具查看线程信息
1. ps -ef | grep tomcat #查看相关的tomcat进程号num。
2.jstack num # 显示该num进程的线程信息
Part2 直接分析终止tomcat时的日志信息
1. cd /home/jiank/apache-tomcat-7.0.70/logs ,进入到日志目录下
tail -f catalina.out,实时显示日志文件信息
2.cd /home/jiank/apache-tomcat-7.0.70/bin
./shutdown.sh ,终止该tomcat的进程[新建与linux连接的终端,终止进程同时观察日志输出信息]
由上并且对应同环境下的对司法项目代码同样的检测可见,是因为项目代码中除了main线程外,存在非daemon类型的线程,所以才导致无法常规关闭中间件tomcat的进程。