如何实现 tomcat 状态?我做到了
地位(){ ps -aef| grep tomcat |grep -v grep }
它除了有效的 tomcat 进程之外还显示另外 2 个进程。有没有更好的方法?
服务 tomcat 状态 根 4107 1 1 19:11 ? 00:00:47 /usr/java/latest/bin/java -Djava.util.logging.config.file=/usr/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/tomcat/endorsed -classpath /usr/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/tomcat -Dcatalina.home=/usr/tomcat -Djava.io.tmpdir=/usr/tomcat/temp org.apache.catalina.startup.Bootstrap 启动 root 4620 4376 0 20:11 pts/0 00:00:00 /bin/sh /sbin/service tomcat 状态 root 4625 4620 0 20:11 pts/0 00:00:00 /bin/bash /etc/init.d/tomcat 状态
答案1
我的初始化脚本中有以下内容。这并不完美!但是在一个盒子里只有一个 Tomcat 的情况下它确实完成了工作:
isRunning() {
numproc=`ps -ef | grep "java" | grep "catalina" | grep -v "grep" | wc -l`
if [ ${numproc} -gt 0 ]; then
return 1
fi
return 0
}
答案2
在启动时 - 您可以设置一个名为 CATALINA_PID 的环境变量,该变量应为文件的名称。tomcat 启动脚本将注意到该变量并使用 pid 创建一个文件。然后您可以使用它来输入 tomcat 是否处于活动状态。
地位(){ ps -fp `cat $CATALINA_PID` }
如果进程存在,ps 也会退出 0。如果不存在,则退出 1,这也应该更容易、更安全。