在Linux根目录下创建一个 /datas/monitor.sh 脚本文件,文件内容如下:
#!/bin/sh
# 获取tomcat进程ID
TomcatID=$(ps -ef |grep tomcat |grep -w 'tomcat'|grep -v 'grep'|awk '{print $2}')
# tomcat启动程序,/datas/apache-tomcat-8.5.84/bin/startup.sh为tomcat的启动脚本
StartTomcat=/soft/apache-tomcat-8.5.82A/bin/startup.sh
TomcatCache=/soft/apache-tomcat-8.5.82A/work
# 启动脚本打印的日志
TomcatMonitorLog=/tmp/TomcatMonitor.log
Monitor()
{
echo "[info]开始监控tomcat...[$(date +'%F %H:%M:%S')]"
if [ $TomcatID ];then #这里判断Tomcat进程是否存在
echo "[info]tomcat正在运行,进程ID为:$TomcatID"
else
echo "[error]tomcat进程不存在!tomcat开始自动重启..."
echo "[info]$StartTomcat,请稍候..."
rm -rf $TomcatCache
$StartTomcat
fi
echo "-------------end------------"
}
Monitor>>$TomcatMonitorLog
修改 $TOMCAT_HOME/bin/setclasspath.sh 文件,在文件的开始添加 JAVA_HOME 和 JRE_HOME,如下图所示
![](https://img-blog.csdnimg.cn/img_convert/8f2a65bb6ce243928a2e544520615a44.png)
export JAVA_HOME=/soft/jdk1.8.0_202
export JRE_HOME=/soft/jdk1.8.0_202/jre
添加系统的定时调度,修改 /etc/crontab 文件,在文件末尾添加如下内容:
![](https://img-blog.csdnimg.cn/img_convert/76f9d0bd19404368ad2ed931382dbb2d.png)
*/1 * * * * root /datas/monitor.sh
运行./monitor.sh生成TomcatMonitor.log文件
(提示:如果出现permission denied错误说明权限不足,需要chmod +x monitor.sh授权)
![](https://img-blog.csdnimg.cn/img_convert/6593e09b22b54caea1b92da1c34afead.png)
![](https://img-blog.csdnimg.cn/img_convert/07b55e98e3954b9196223f25d0bfc523.png)
通过 tail -f /tmp/TomcatMonitor.log 查看脚本执行清空,如果没有运行,执行 systemctl restart crond 重启Linux定时调度。
![](https://img-blog.csdnimg.cn/img_convert/8a64ac894f1a42f8a9e2b2254841093b.png)