在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