【问题标题】:Problem on looking for running tomcat process id查找正在运行的 tomcat 进程 ID 的问题
【发布时间】:2021-03-02 09:13:39
【问题描述】:

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

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

53585

而且我在运行过程中只能找到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?

【问题讨论】:

标签: linux tomcat cron


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-21
    • 2013-03-14
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多