原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928

项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写一个看门狗程序,监测tomcat异常关闭后,重启服务器。

 

1:新建脚本文件,赋予权限

 

touch start.sh

chmod 755 start.sh

2:编写脚本文件

 

#!/bin/sh

 

# 自动监控tomcat并且在异常时执行重启操作

 

 

# 定义java环境变量

export JAVA_HOME=/usr/local/myApp/jdk1.8

 

 

# 获取端口号为8080的tomcat进程ID(考虑到有多个tomcat服务器,用8080关键词)

# grep -v grep 排除grep命令自带的进程id

# awk '{print $2}' 只保留结果中第二列的值

pid=$(ps -ef |grep 8080|grep -v grep|awk '{print $2}')

 

 

# tomcat启动脚本

start=/usr/local/myApp/tomcat8080/bin/startup.sh

 

 

# tomcat缓存

cache=/usr/local/myApp/tomcat8080/work

 

 

# tomcat链接地址

url=http://localhost:8080

 

 

# 监控时的日志输出

log=/tmp/my.log

 

 

#linux垃圾回收站

hole=/dev/null

 

 

function doIt()

{

if [ $pid ]

then

echo "tomcat进程ID存在"

code=$(curl -s -o $hole -m 10 --connect-timeout 10 $url -w %{http_code}"\n") #测试链接是否可以正常访问

if [ $code -eq 200 ]

then

echo "测试链接正常"

else

echo "测试链接失败,重启tomcat"

kill -9 $pid # 杀掉进程

sleep 5

rm -rf $cache # 清理tomcat缓存

$start

fi

else

echo "tomcat进程id不存在,重启中...."

rm -rf $cache

$start

fi

echo "------------------------------"

}

 

doIt>>$log #执行函数,并打印日志

 

3:设置定时执行start.sh文件

crontab -e

添加内容:

*/30 * * * * /tmp/mySh/start.sh #每30分钟执行一次

 

4:启动定时任务

 

service crond start #启动定时任务

 

service crond status #查看状态

 

service crond restart #重启定时任务

 

service crond stop #停止定时任务

 

5:查看定时任务

crontab -l

 

 

注意:某些自己用yum install xxx安装的系统命令,在shell脚本文件执行时可能会失效,这时候使用

which xxx 查看命令的安装目录,然后在shell脚本文件中使用绝对路径就ok了

 

 

参考文章:https://blog.csdn.net/zzq900503/article/details/50723191

关注「编程微刊」公众号 ,在微信后台回复「领取资源」,获取IT资源300G干货大全。

公众号回复“1”,拉你进程序员技术讨论群.

好文推荐

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。