linux tomcat守护进程

1,描述
我们需要写一个进程监控的脚本,目的是检测tomcat进程是否停掉,如果挂了,自动拉起,所以我们写了如下的脚本,参考了一些资料,希望对有需要的人有所帮助。

#!/bin/bash 
echo "Start" 
URL="http://127.0.0.1/###/" 
curlit() 

    #echo "??" 
curl --connect-timeout 15 --max-time 20 --head --silent "$URL" | grep '200' 
# 上面的15是连接超时时间,若访问localhost的HTTP服务超过15s仍然没有正确响应200头代码,则判断为无法访问。 

doit() 
{       
if ! curlit; then 
# 如果localhost的apache服务没有正常返回200头,即出现异常。执行下述命令: 
   # echo "TD" 
sleep 20 
   #top -n 1 -b >> /var/log/log.log 
 
 
kill  `ps -ef|grep java|grep -v grep |awk '{print $2}'` > /dev/null 2>&1 
# 这条语句中ps -ef|grep java|grep -v grep为查询进程中java进程同时排除本身语句,用awk找到第二列信息,返回状态扔到黑洞中。 
sleep 2 
cd /tomcat-6.0.29/bin/ 
/bin/sh startup.sh  
#echo "EN" 
echo $(date) “Tomcat Restart” >> /var/log/log.log 
# 写入日志 
sleep 60 
# 重启完成后等待,然后再次尝试一次 
if  ! curlit; then 
# 如果仍然无法访问,则: 
echo "@" 
echo $(date) “Failed!” >> /var/log/log.log 
# 写入apache依然重启失效的日志 
fi 
sleep 180 
fi 

sleep 3 
# 运行脚本后才开始正式工作(防止重启服务器后由于tomcat还没开始启动造成误判) 
 
 
# 主循环体 
doit  

二、把mytt.sh文件放到root目录下,并修改权限为可执行文件。

三、在控制台上输入以下命令
  crontab –e

四、按i键编辑这个文本文件,输入以下内容,每隔5分钟重启tomcat
  */5 * * * * /root/mytt.sh
 
  按esc键退出编辑,输入wq回车保存

五、启动定时服务
[root@]# service crond stop
[root@]# service crond start

六、乱码问题
手工重启与默认系统任务自动重启的字符集是不一样的。在jsp中加入<%=System.getProperty( "file.encoding")%>,可以发现系统自动重启与手工自动重启结果不一样,自动重启打印的结果是ANSI_X3.4-1968,手工重启打印的是GB18030.
作者的项目中使用了volicity生成页面,自动重启后生成的页面就会出现乱码。在tomcat的bin下面找到catalina.sh,在里面加上“CATALINA_OPTS=-Dfile.encoding=GB18030”就可以解决这个问题。

猜你喜欢

转载自tw-loverr.iteye.com/blog/2234790