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二进制文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |