linux停止tomcat为什么要kill其掉进程 而不是直接shutdown.sh

运行tomcat/bin/shutdown.sh,tomcat停止,但它的java进程还在,事不过状态为S(sleep),不是运行时的R(Runnable),如果不kill的话,这种进程越来越多
打开终端
cd /java/tomcat
#执行
bin/startup.sh #启动tomcat
bin/shutdown.sh #停止tomcat
tail -f logs/catalina.out #看tomcat的控制台输出;


#看是否已经有tomcat在运行了
ps -ef |grep tomcat

#如果有,用kill;
kill -9 pid #pid 为相应的进程号


例如 ps -ef |grep tomcat 输出如下
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start

则 5144 就为进程号 pid = 5144
kill -9 5144 就可以彻底杀死tomcat


#直接查看指定端口的进程pid
netstat -anp|grep 9217
#结果为 tcp        0      0 :::9217                     :::*                        LISTEN      26127/java
#则26127为9217这个端口的tomcat进程的pid,然后就可以kill这个进程
kill -9 26127
#然后再启动tomcat即可

原文地址:https://www.cnblogs.com/aina5626/p/5166015.html