linux下实现tomcat定时自动重启
tomcat自带的脚本中没有提供直接restart的模式,但是有start和shutdown两种模式。要实现restart模式,实际上只需要判断是否已经启动tomcat,若已经启动则限制性shutdown,然后在执行start。或者通过ps aux查询出是否存在tomcat进程,若存在kill -9 tomcat的pid,再进行启动tomcat.通过shell脚本实现tomcat重启,并将该脚本添加到Linux的定时任务计划中,就可以实现tomcat的定时自启动功能。
- 以下是实现tomcat重启的shell脚本
#!/bin/sh
#初始化全局环境变量
. /etc/profile
#查找tomcat的pid
pid=`ps aux | grep tomcat | grep -v grep | grep -v Restart | grep -v restart | awk '{print $2}'`
echo "the tomcat pid is $pid"
#判断tomcat进程是否存在
if [ -n "$pid" ];then
sleep 1
pid=`ps aux | grep tomcat | grep -v grep | grep -v restart | grep -v Restart | awk '{print $2}'`
if [ -n "$pid" ]; then
sleep 1
echo "tomcat进程将被杀死."
kill -9 $pid
fi
sleep 1
echo "tomcat进程已经被杀死,先重新启动tomcat."
service tomcat start
else
echo "tomcat进程不存在,先重新启动tomcat."
service tomcat start
fi
由于我原来对tomcat已经做了服务自启动,因此可以直接执行service tomcat start 启动tomcat。
- 实现tomcat定时任务
vi /etc/crontab
可以看到以下内容
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
以上备注说明非常清楚,不再加以详细说明,将tomcat重启执行脚本语句添加到最后一行。
#设定每天凌晨3点整重启tomcat
0 3 * * * root sh /home/scripts/tomcat/restart >> /home/logs/tomcat/restart.log
特别注意,在写完脚本后要enter,否则crond服务无法识别,定时任务无法生效
保存并重启crontab服务
service crond restart
以上便完成了tomcat的定时重启功能
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2020-09-22 Docker镜像相关-查看镜像信息
2020-09-22 学习 Docker 如何查看镜像信息?