Tomcat进程残留问题


运行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

文章作者: gloamfox
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 gloamfox !
 上一篇
Ubuntu修改国内源解决下载问题
本文介绍了如何解决Ubuntu系统软件下载速度慢的问题,通过更换国内镜像源(如163源、阿里源、清华源、中科大源)来提高下载速度。文章详细说明了备份官方源、下载第三方源文件以及更新资源的具体操作步骤,所有操作都需要在管理员模式下进行。
2025-11-27
下一篇 
Oracle特殊字符处理
本文介绍了Oracle数据库中处理特殊字符的方法,特别是制表符、换行符和回行符等不可见字符。文章提供了使用replace函数和ascii函数查找并替换这些特殊字符的SQL代码示例,帮助解决因特殊字符导致的数据关联问题。
2025-11-20
  目录