在linux系统中。我们经常会遇到各种各样,tomcat停止服务的问题。
这里解决方案:(1)用shell写一个for循环,检查tomcat进程ID的脚本是否存在,如果不存在就重启tomcat服务。(推荐)
(2)写一个重启tomcat的shell脚本,然后用crontab定时执行这个脚本即可。
那么定时启动tomcat的实现如下:
1.首先shell脚本
#!/bin/sh
export JAVA_HOME=/usr/java/jdk1.6.0_26
pid=`ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'`
echo $pid
if [ -n "$pid" ];
then
{
echo "==========tomcat is start============"
'/usr/server/tomcat-7.0.27/bin/shutdown.sh'
sleep 5
'/usr/server/tomcat-7.0.27/bin/shutdown.sh'
sleep 15
pid=`ps -auxww|grep tomcat|grep -v grep|awk '{print $2}'`
if [ -n "$pid" ];
then
{
echo "======to kill the tomcat pid $pid========"
kill $pid
sleep 3
}
fi
echo "==========start tomcat============"
'/usr/server/tomcat-7.0.27/bin/startup.sh'
}
else
{
echo "==========tomcat is stop=====start======="
'/usr/server/tomcat-7.0.27/bin/startup.sh'
}
fi
或者简单的重启的tomcat的shell脚本。如下
#!/bin/sh
tomcat_home=/opt/apache-tomcat-6.0.32
#找到tomcat进程的id并kill掉
ps -ef |grep tomcat |awk {'print $2'} | sed -e "s/^/kill -9 /g" | sh -
#删除日志文件,如果你不先删除可以不要下面一行
rm $tomcat_home/logs/* -rf
#删除tomcat的临时目录
rm $tomcat_home/work/* -rf
#启动tomcat
$tomcat_home/bin/startup.sh
#看启动日志
tail -f $tomcat_home/logs/catalina.out
2.在新建任务计划:利用crontab -e命令,于02:00执行重启服务。
10 02 * * * /usr/server/tomcat-7.0.27/bin/startup.sh
3.启动crond服务 命令如下
3.启动定时服务
[root@]# service crond stop
[root@]# service crond start
4.查看该任务是否在定时列表里面:
[root@]# crontab -l
10 02 * * * /usr/server/tomcat-7.0.27/bin/startup.sh