为 Java 的 Spring Boot 微服务编写一个自动重启的脚本并配置 Linux 的 crontab 以每 10 分钟检测一次

要为 Java 的 Spring Boot 微服务编写一个自动重启的脚本并配置 Linux 的 crontab 以每 10 分钟检测一次,可以使用以下步骤:

1.创建一个脚本文件,例如 restart.sh,并将以下内容添加到该文件中:

#filePath /data/webapps/sh/restart.sh
#!/bin/sh
#check  service and restart if down

DATE=`date -d "today" +"%Y-%m-%d-%H:%M"`
MIN=`date -d "today" +"%M"`

#------- config -------
#service path
servicePath=/data/webapps/mall

#service name
serviceName=your-microservice
extension=.jar

#service restart log path
restartLogPath=/data/webapps/logs


#------- restart -------
cd ${servicePath}

#get service pid
servicePid=`ps -ef | grep ${serviceName}${extension} |grep -v grep| awk '{print $2}'`

#if语句判断服务是否存在,如果不存在,输出日志记录并重启服务
if [ "$servicePid" != "" ]; then
	echo "$DATE The ${serviceName}${extension} is OK, 进程ID = ${servicePid}" >> ${restartLogPath}/${serviceName}_restart.log
else
	echo "$DATE The ${serviceName}${extension} is problem and restart,重启分钟数 = ${MIN}" >> ${restartLogPath}/${serviceName}_restart.log

    #backup service log
    mv ./log_${serviceName}.log ./log_${serviceName}_${DATE}.log

    #startup service
    nohup java -Xms512m -Xmx512m -jar ${serviceName}${extension} > ./log_${serviceName}.log 2>&1 &
fi

请将 servicePath、 serviceName、restartLogPath等配置替换为你微服务的实际环境配置

2.为脚本文件添加可执行权限:

chmod +x restart.sh

3.使用 crontab 命令配置定时任务,每 10 分钟执行一次脚本:

crontab -e

在打开的编辑器中添加以下行:

*/10 * * * * /bin/sh /data/webapps/sh/restart.sh

请将 /data/webapps/sh/ 替换为脚本文件的实际路径
保存并关闭编辑器。
这样,每 10 分钟 crontab 将会执行 restart.sh 脚本,检查微服务是否正在运行,并在需要时重新启动它。
 

查看已配置的定时任务

crontab -l

4.可以使用service crond status命令来查看crontab的服务状态

Redirecting to /bin/systemctl status crond.service
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2023-09-15 14:47:11 CST; 3 months 11 days ago
 Main PID: 949 (crond)
    Tasks: 1
   Memory: 2.8M
   CGroup: /system.slice/crond.service
           └─949 /usr/sbin/crond -n

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值