SpringBoot在linux下每天自动重启服务器

为解决每日重置随机概率且保持当日恒定的需求,本文介绍了一种通过定时重启服务器的方法。使用cron表达式设置重启时间,并通过脚本杀死旧进程启动新进程,确保概率值每日更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:每天重置一次随机的概率,而且这个概率在当天是恒定的,但是第二天要重新随机出来。。。
我第一个想到的是用常量来处理private final static int RANDOM = (int)(Math.random()*(10-5+1)+5);,但问题又来了。常量的情况下要每天重启服务器才能把这个常量更新。。。
只好做一个服务器定时重启的功能了。。。刚好下班前写完,下面直接上代码 重启服务器的脚本restartup.sh

#!/bin/sh
pid=`lsof -i:8080 |grep java |awk '{print $2}'`
echo $pid
if [ -n "$pid" ]
  then 
  echo "kill process[$pid] success"
  kill -9 $pid
else
   echo "not find process"
fi
nohup java -jar product.jar
echo "start successed!!!"
tail -50f run.log

记得要改端口号和nohup的java地址、包名,如果启动报错的话用vi -b 文件名看一下是不是每行后面都有一个^M,如果有那就是这个的锅了。输入:%s/^M//g来批量替换,这个^M不是手打哦,分别是Ctrl+V和Ctrl+M来的
然后就是java代码部分了,建个RestartUpUtil

@Scheduled(cron = "0 30 2 * * ?")
    public void autoRestartUp() throws IOException {
        String shellpath="sh /目录/restartup.sh";
        Process ps = Runtime.getRuntime().exec(shellpath);
    }

我这个设置是每天凌晨两点半重启服务器的,要改时间的直接更改Scheduled这里
还有最重要的,哪位大佬能教一下小弟怎么排版???

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值