运行shutdown.sh,tomcat停止, 但它的java进程还在, 不过状态为S(sleep), 不是运行时的R(Runnable), 如果不kill的话, 这种进程越来越多,导致JVM进程越来越多, 占据了大量的内存空间, 有可能使得新程序在启动JVM时由于内存不够用而无法启动。
kill强制杀死进程
ps -ef|grep java
若显示以下内容代表使用的java进程还存在,没有完全停止
root 50530 1 99 10:25 pts/0 00:00:45 /usr/local/java/jdk1.7.0_51/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-7.0.92/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/apache-tomcat-7.0.92/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-7.0.92/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/apache-tomcat-7.0.92 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-7.0.92 -Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-7.0.92/temp org.apache.catalina.startup.Bootstrap start
root 50934 48933 0 10:26 pts/0 00:00:00 grep --color=auto java
使用kill命令,杀死进程
kill -9 50530 #50530为进程id
tomcat 解决
在tomcat/bin/shutdown.sh文件中增加一个参数
exec "$PRGDIR"/"$EXECUTABLE" stop "$@" #原来的
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@" #增加参数后
在tomcat/bin/catalina.sh脚中,加入下面这三行
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
cat $CATALINA_PID
fi