目的:当服务挂掉后自动重启服务
方案一:crontab 定时任务检测与重启。
1、创建服务运行检测与重启脚本: appRestart.sh
#!/bin/sh # 进行jar所在目录 cd /opt/app/ source /etc/profile # 查询程序是否存活 project=`ps -ef|grep appServer-1.0.0|grep -v grep|wc -l` date=`date` server_name="appServer-1.0.0" # $? -ne 0 不存在 # $? -eq 0存在 if [ $project -eq 0 ] then nohup java -jar appServer-1.0.0.jar >> nohup.log & #重启服务 echo `date +%Y-%m-%d` `date +%H:%M:%S` $server_name >> ./restart.log #记录重启日志 fi
2、配置crontab 定时任务
crontab -e 编辑定时任务配置
新增配置,一分钟执行一次 :
*/1 * * * * /home/app/schdule/appRestart.sh >> /home/app/schdule/appRestart.log
crontab -l 查看定时任务配置。
方案二:利用Keepalived的vrrp_script进行监测与重启。
该方案适用于 Keepalived+Nginx 集群做VIP,适用于对高可用要求较高的系统。当只有单节点时,可充当服务健康监控与重启功能。
1、安装Keepalived服务(略)。
单节点配置时注意设置 state 为 master
2、配置vrrp_script脚本
vrrp_script checkAndRestart { script "/home/appRestart.sh" #指向重启脚本 interval 3 #每3秒执行一次脚本 weight -20 } vrrp_instance test { ... track_script { checkAndRestart } ... }
--end
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!