在Linux中顺利closurestomcat进程

这一直在困扰我一段时间。

在我的JSF开发周期中,我做了很多的tomcat重载,有时甚至到了重启tomcat的地步。 我注意到有时候,使用shutdown.shclosurestomcat是不行的,因为通过startup.sh启动它时,地址已经在使用端口8080.而在linux shell中,我必须做这样的事情:

ps auwx | grep -i tomcat kill -9 <tomcatPid> 

有什么办法可以干净地closurestomcat,就像在Windows中的tomcat服务?

我目前正在使用opensuse linux 11.2,而且我还没有将我的tomcatjoin到我的服务中。 仍然从shell手动启动和closures它。

您可以通过简单地运行来避免2个命令:

 pkill -f catalina 

优雅地杀死与文本catalina匹配的进程。

为了检查卡塔利娜进程是否还在运行,你可以这样做:

 pgrep -fl catalina 

最后用暴力杀人试试:

 pkill -9 -f catalina 

closures它的干净方式是kill <tomcatPid> 。 这将启动JVMclosures进程,包括servlet上下文销毁机制。 在极less数情况下,JVM会停滞在关机过程中,您将需要使用kill -9 <tomcatPid>kill -9 <tomcatPid>进程。

举个例子:

 ps auwx | grep -i tomcat kill <tomcatPid> sleep 10 # This value is dependent how long it takes for your app to shut down ps auwx | grep -i tomcat if tomcat is still alive kill -9 <tomcatPid>