很多时候,当linux服务器挂了后重启后,tomcat服务器却还没重新启动导致项目网站无法访问,下面来解决一下这个问题
1.使用yum安装crontab服务,这是一个定时器服务,可以自己设定时间,多久监控一下tomcat服务器是不是挂了,如果挂了,它会让它重新启动起来。
安装命令:yum install vixie-cron
安装完成后,使用一下命令看看:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:service crond status
手动启动crontab服务:service crond start
先启动crond 服务,然后再查看status,如下图使用:service crond status查看,is running说明正常running
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM1EDOykDM2EDMzMDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
2.查看crontab服务是否已设置为开机启动,执行命令:ntsysv
在linux上面直接输入命令后,会出现如下界面:
上面为服务列表,可以看到crond的服务,带*号的说明服务是开机启动的,你可以按键盘的上下键选择服务,然后使用空格键设置带*号or不带,也就是是否开机启动,然后按tab键可以从上面的服务列表切换到下面的确定和取消,同样是按空格键选择确定和取消。
3.写shell监控语句
#!/bin/sh
basePath=$(cd $(dirname $0);pwd)
echo ""
echo "####################begin check####################"
for tomcat in $(ls -F|grep /$|grep tomcat);
do
if [ -z "$(ps -ef|grep $basePath/$tomcat |grep java)" ];then
echo "$tomcat is not run!"
sh $tomcat/bin/startup.sh &
echo `date +'%Y-%m-%d %H:%M:%S'` "$tomcat start!" >> $basePath/check.log
fi
done;
echo "####################end check####################"
echo ""
这个是一个demo的监控语句,各位觉得不好也可以重新写。touch一个xxx.sh文件,文件名自己取,我的是叫check.sh,然后将上面语句写到里面去。
然后将其文件放在和你的tomcat同一个文件目录下面,如下图:
4.将shell执行程序加到定时器里面去,也就是上面安装的那个crontab服务。
执行命令:crontab -e 然后会进入到一个文本编辑状态里面去,然后将其下面语句写到当前进入的这个文本里面去
命令为:*/1 * * * * sh /usr/local/tomcat/check.sh
命令前面的1为时间,也就是1分钟,/usr/local/tomcat/check.sh是你写的shell监控程序check.sh文本的地址,copy完这个命令后就可以了保存退出了。然后现在全部都ok了,启动crontab服务让它运行去吧。