Ram*_*ami 5 shell tomcat crontab recover tomcat7
我正在制作一个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
Run Code Online (Sandbox Code Playgroud)
这是PID的定义。PID 文件是包含进程标识符的文件。如果Tomcat的启动脚本在环境变量设置正确的情况下运行CATALINA_PID,那么Tomcat进程的PID将在启动时记录到文件中。如果当您尝试启动 Tomcat 时该文件存在,脚本将拒绝运行,因为它不想破坏(可能有效的)PID 文件。
如果您确定 Tomcat 没有运行,只需删除该文件(它应该可以通过CATALINA_PID环境变量访问),然后重试。
我分享 @jordanm 关于使用退出代码而不是检查特定(文本)输出的评论:最新版本的 Tomcat 甚至不使用您上面显示的消息,因此它非常脆弱。
如果您想要一个自动重新启动的服务,请考虑查看jsvc,它实际上以源代码形式随 Tomcat 二进制文件一起提供。
| 归档时间: |
|
| 查看次数: |
13867 次 |
| 最近记录: |