由于linux系统内存过小或者一些其它问题,导致Tomcat服务经常由于内存不足出现OutOfMemoryError异常的情况。经常过几天就需要重启一次服务器,更要命的是不知道什么时候会由于内存不足导致无法访问,如果重启不及时严重影响tomcat应用项目的使用。
一、创建Shell定时启动脚本文件
在linux系统里面用户项目路径下面创建一个定时启动文件,用来存放tomcat定时重启的脚本信息(该文件可以在服务器路径下面手动创建,也可以在linux系统命令平台使用命令创建)。
命令: touch restart.sh
小编这边新建的tomcat定时重启的脚本文件就放在这个/home/lmode/restart下面
、编写tomcat定时重启的脚本信息
这个tomcat定时重启的脚本信息可以先在本地的文件里面先编写准备好,到时再linux系统里面的创建的restart.sh文件复制进去就好。
linux系统里面的文件编写使用命令:
vi /home/lmode/restart/restart.sh
进入linux系统restart.sh文件编辑模式的时候,就将下面这个tomcat定时重启的脚本信息复制到restart.sh文件里面去。
将这个tomcat定时重启的脚本信息复制到restart.sh文件里面去之后,点击ESC退出键,输入:wq!保存退出即可。
设置tomcat定时重启的时间
要想tomcat按照我们自己想要的时间定时重启,就需要在linux系统上面设置tomcat定时重启的时间了。
在控制台上输入使用命令: crontab -e ,进入编辑crontab脚本,第一次输入该命令时需要选择编辑器。
crontab中每一个定时任务的格式由6部分组成,分别是分钟、小时、天、月、星期以及命令,前5部分用来配置任务触发时机,中间使用空格隔开,如下:
minute hour day month dayofweek command
minute – 表示分钟,值的范围是从0到59的整数;
hour – 表示小时,值的范围是从0到23的整数 ;
day – 表示天,值的范围是从1到31的整数;
month – 表示月,值的范围是从1到12的整数;
dayofweek – 表示星期,值的范围是从0到6的整数 (0表示周日);
command – 需要执行的命令(/home/lmode/restart/restart.sh>/home/lmode/restart/tlog.log表示执行restart.sh脚本,并且把结果日志打印到tlog.log中)。
选择vim编辑器编辑就可,在文件后面增加一条任务。(我的脚本文件路径是:/home/lmode/restart/restart.sh)。
小编这边有设置2个tomcat定时重启的时间,一个是晚上1点3分;一个是中午1点3分,如下图所示。
五、启动linux系统任务器定时器
编辑好tomcat定时重启的时间任务后,就可以启动linux系统任务器定时器任务了,使其可以tomcat定时重启。
启动命令:service crond restart