실행중인 Tomcat 프로세스 ID를 찾는 데 문제가 있습니다.

Nov 18 2020

때로는 메모리 문제로 인해 내 tomcat 서버가 자동 종료되므로 아래 스크립트를 사용하여 tomcat이 실행 중인지 확인하고 싶습니다.

checkTomcatRunning.sh

TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print $2}')
echo TOMCAT PROCESSID $TOMCAT_PID if [ -z "$TOMCAT_PID" ]
then
    echo "TOMCAT NOT RUNNING"
    sudo /opt/tomcat/bin/startup.sh
else
   echo "TOMCAT RUNNING"
fi

아래는 로그를 /opt/tomcat/logs/checkTomcatRunning.log에 출력하는 crontab입니다.

crontab -l

*/1 * * * * /opt/tomcat/webapps/checkTomcatRunning.sh >>/opt/tomcat/logs/checkTomcatRunning.log 2>&1

/opt/tomcat/logs/checkTomcatRunning.log에서 4 개의 PID가 인쇄 된 것을 볼 수 있습니다.

cat /opt/tomcat/logs/checkTomcatRunning.log

TOMCAT PROCESSID 53585 53916 53917 53918
TOMCAT RUNNING

ps -ef | awk '/ [t] omcat / {print $ 2}'from linux command line, there is only one PID 53585

ps -ef | awk '/ [t] omcat / {print $ 2}'

53585

그리고 실행중인 프로세스에서는 53585 만 찾을 수 있지만 53916 53917 53918은 찾을 수 없습니다.

추신 -p 53585 53916 53917 53918

    PID TTY      STAT   TIME COMMAND
  53585 pts/0    Sl     0:50 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pk

checkTomcatRunning.log에 PID가 4 개 (1 개가 아님) 인쇄 된 이유를 알려주는 사람이 있습니까?

답변

jiangwensi Nov 21 2020 at 05:11

스크립트 및 로그 파일의 경로와 이름을 변경하여 "[t] omcat"키워드를 포함하지 않도록 해결했습니다.