项目部署采用jenkins自动部署,在更新过于频繁的时候,发现Linux中同一个tomcat会出现多个进程在跑。占用系统内存。
解决方案:
1、在tomcat catalina.sh 脚本classpath 节点下方加上 :
#record tomcat PID
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID="$CATALINA_BASE"/logs/CATALINA_PID
cat $CATALINA_PID
fi
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID="$CATALINA_BASE"/logs/CATALINA_PID
cat $CATALINA_PID
fi
因为需要采用$CATALINA_BASE,所以该脚本需要加在定义之后。
2、修改shutdown.sh
在shutdown.sh 中最后一行修改:加上 -force
原来
exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
改为
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
原来
exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
改为
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
如果tomcat为启动状态,在shutdown tomcat时,会报错,无法正常停止tomcat
需要手动kill进程