linux 自动重启tomcat 脚本

来源:互联网 发布:网络胜利组动漫风车 编辑:程序博客网 时间:2024/05/01 13:04

Tomcat作为开源的服务器,性能与稳定性上比起一些商业服务器还是要差一些。将项目部署到Tomcat后隔段时间就会死掉,出现这种问题的主要原因可能是内存数据溢出,因为Tomcat容器在发生大量与数据库交互查询或者操作的时候很容易出现问题。定时重启是一个很好的补救措施,定时重启可以定时的清理内存也降低了Tomcat运行的风险,从而保持tomcat的最佳性能。 

一、写一个shell脚本mytt.sh,重新启动tomcat 
Java代码  收藏代码
  1. #!/bin/sh  
  2. pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`  
  3. echo $pid  
  4. if [ -n "$pid" ]  
  5. then  
  6. {  
  7.    echo ===========shutdown================  
  8.    /usr/local/tomcat/bin/shutdown.sh  
  9.    sleep 2  
  10.    pid=`ps aux | grep tomcat | grep -v grep | grep -v retomcat | awk '{print $2}'`  
  11.    if [ -n "$pid" ]  
  12.    then  
  13.     {  
  14.       sleep 2  
  15.       echo ========kill tomcat begin==============  
  16.       echo $pid  
  17.       kill -9 $pid  
  18.       echo ========kill tomcat end==============  
  19.     }  
  20.    fi  
  21.    sleep 2  
  22.    echo ===========startup.sh==============  
  23.    /usr/local/tomcat/bin/startup.sh  
  24. }  
  25. else  
  26. echo ===========startup.sh==============  
  27. /usr/local/tomcat/bin/startup.sh  
  28. fi  
 
文件名可以随便取,不过注意不要包含“tomcat”的字样,不然会被以上脚本误以为是tomcat的相关进程直接杀掉,从而无法执行后面的启动命令。 

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

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

四、按i键编辑这个文本文件,输入以下内容,每天凌晨5:00重启tomcat 
  00 05 * * * /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”就可以解决这个问题。

七、出现异常问题
无法修改crontab -e 的文件 
直接vi编辑一个文件,取名为crontab.ini(或其他名称),并在里面配置好任务。
然后
crontab -u root crontab.ini

由于 cron服务每分钟不仅要读一次 /var/spool/cron 目录内的所有文件,还需要读一次 /etc/crontab 文件。配置这个文件也能让cron执行任务。使用crontab命令是对用户级任务的配置,而编辑 /etc/crontab 文件是对系统级任务的配置。



原创粉丝点击