shutdown.sh脚本,并不能完全杀死tomcat的所有进程。只是关闭了tomcat的服务,使java进程进入的sleep状态。
脚本的注释
# -----------------------------------------------------------------------------
# Stop script for the CATALINA Server
# -----------------------------------------------------------------------------
脚本只是关闭了tomcat,并没有关闭tomcat启动的Java进程。执行完shutdown后,系统占用的内存没有发生变化,通过ps -ef | grep tomcat命令仍有相关的java进程。可以通过kill -9 pid或kill -15 pid手动结束进程。或者在此shutdown.sh脚本中添加强制关闭标识
#原关闭代码
exec "PRGDIR"/"EXECUTABLE" stop "$@"
#增加 -force标识
exec "PRGDIR"/"EXECUTABLE" stop -force "$@"
修改catalina.sh,增加如下代码
if [ -z "$CATALINA_PID" ] ;then
CATALINA_PID = ./CATALINA_PID
cat $CATALINA_PID
fi
在bin目录下创建一个CATALINA_PID文件(使用命令touch CATALINA_PID)
在执行shutdown.sh脚本时,就会强制关闭相关的Java进程