Назад | Перейти на главную страницу

статус службы tomcat

как вы реализуете статус Tomcat? я сделал

status(){
    ps -aef| grep tomcat |grep -v grep
}

он показывает еще 2 процесса, кроме действительного процесса tomcat. Есть ли способ лучше?

service tomcat status
root      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 start
root      4620  4376  0 20:11 pts/0    00:00:00 /bin/sh /sbin/service tomcat status
root      4625  4620  0 20:11 pts/0    00:00:00 /bin/bash /etc/init.d/tomcat status

В моем сценарии инициализации есть следующее. Это не идеально! Но он выполняет свою работу в случае одного Tomcat в коробке:

isRunning() {
numproc=`ps -ef | grep "java" | grep "catalina" | grep -v "grep" | wc -l`

if [ ${numproc} -gt 0 ]; then
    return 1
fi

return 0
}

При запуске - вы можете установить переменную окружения CATALINA_PID, которая должна быть именем файла. Сценарии запуска tomcat заметят эту переменную и создадут файл с pid. Затем вы можете использовать это, чтобы указать, жив ли кот.

status(){
    ps -fp `cat $CATALINA_PID`
}

ps также выйдет из 0, если процесс существует. 1, если это не так, что также должно быть и проще, безопаснее.