加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – Tomcat servlet引擎未运行,但pid文件存在.这条消息是什

发布时间:2020-12-15 21:41:58 所属栏目:安全 来源:网络整理
导读:我正在制作一个 shell脚本,以便在崩溃后重启tomcat. 我想我需要在我的脚本中处理此消息“Tomcat servlet引擎未运行,但pid文件存在.” 这个消息意味着什么? 我是否需要将其作为错误消息考虑在内,迫使我重新启动Tomcat? 我的脚本如下: #!/bin/bashSERVICE=/
我正在制作一个 shell脚本,以便在崩溃后重启tomcat.
我想我需要在我的脚本中处理此消息“Tomcat servlet引擎未运行,但pid文件存在.”
这个消息意味着什么?
我是否需要将其作为错误消息考虑在内,迫使我重新启动Tomcat?

我的脚本如下:

#!/bin/bash
SERVICE=/etc/init.d/tomcat7
STOPPED_MESSAGE=" * Tomcat servlet container is not running."  
PID_FILE_MESSAGE=" * Tomcat servlet engine is not running,but pid file exists."

if [ "`$SERVICE status`" == "$STOPPED_MESSAGE" ];
then  
{
    $SERVICE start
}
else
    if [ "`$SERVICE status`" == "$PID_FILE_MESSAGE" ];
    then
    {
        $SERVICE restart
    }
    fi
fi

解决方法

这是 PID的定义.PID文件是包含进程标识符的文件.如果在正确设置CATALINA_PID环境变量的情况下运行Tomcat的启动脚本,则Tomcat进程的PID将在启动时记录到文件中.如果在尝试启动Tomcat时文件存在,则脚本将拒绝运行,因为它不想破坏(可能有效)PID文件.

如果您确定Tomcat没有运行,只需删除该文件(它应该通过CATALINA_PID环境变量提供)并再试一次.

我分享了@jordanm关于使用退出代码而不是检查特定(文本)输出的评论:最新版本的Tomcat甚至没有使用上面显示的消息,所以它非常脆弱.

如果你想要一个自我重新启动的服务,考虑一下jsvc,它实际上是以源代码形式提供Tomcat二进制文件.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读