查找 运行 tomcat 进程 ID 时出现问题

Problem on looking for running tomcat process id

有时我的 tomcat 服务器会因为一些内存问题而自动关闭,所以我想使用下面的脚本来检查 tomcat 是否是 运行ning:

checkTomcatRunning.sh

TOMCAT_PID=$(ps -ef | awk '/[t]omcat/{print }')
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 |来自 linux 命令行的 awk '/[t]omcat/{print $2}',只有 1 个 PID 53585

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

53585

而且我在运行ning进程中只能找到53585,找不到53916 53917 53918.

ps-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 中打印了 4 个(但不是 1 个)PID?

已通过更改脚本和日志文件的路径和名称解决,使它们不包含“[t]omcat”关键字。