故障现象:
tomcat linux执行shutdown.sh后进程仍然存在,执行startup.sh后又多了个线程
原因
代码有开额外线程,成为tomcat子线程,如线程池或任务调度,如executorService, quartz, timer,且tomcat destroy时没有shutdown定时器,后端进程一直存在,每个进程一直占据内存,但父进程tomcat已关闭,导致成为zombie进程。
解决方法:
catalina.sh中pgdir上加一段
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi
shutdown.sh的最后一行加上-force,强制kill