Shell 脚本定时重启项目

个人博客:DoubleFJ の Blog

前言

自己很早之前就买了一台阿里云服务器,当时新用户买的时候很便宜后来每年续费简直贵得离谱。要不是我已经装了很多东西,还有我的懒(换服务器还需要重新配置和备案)。当然这跟我下面要说的关系不是很大。

我一直以来用这服务器只是为了挂自己的博客和几个很早之前练手的小项目,结果发现这破服务器总是会把我的项目进程给干掉,等我偶尔访问的时候发现早已经打不开小网站了,相当郁闷。

终于,今天我实在是忍不了了。

解决方案

想了想,最简单的解决方案就是我写个定时脚本去定时重启项目。这下我管你正不正常,直接给你重启了。通过网上资料的搜集和我自己的测试,不一会就搞定了,问题不大(以前也就懒,早应该弄了)。

实现脚本具体如下:

#!/bin/bash

echo "===start==="
tt=$(date "+%Y-%m-%d %H:%M:%S")
echo $tt

# kill
faceshow_pid=$(ps -ef | grep 'faceshow.jar' | grep -v grep |  awk '{print $2}')
if [ -z $faceshow_pid ] ;then
	echo "faceshow not exist"
else
	echo "faceshow_pid: $faceshow_pid"
	kill -9 ${faceshow_pid}
	echo "faceshow killed"
fi
mishow_pid=$(ps -ef | grep 'mishow.jar' | grep -v grep | awk '{print $2}')
if [ -z $mishow_pid ] ;then
    echo "mishow not exist"
else
    echo "mishow_pid: $mishow_pid"
    kill -9 ${mishow_pid}
    echo "mishow killed"
fi

# start
nohup /usr/local/java/jdk1.8.0_171/bin/java -jar /usr/local/jar/faceshow.jar >/usr/local/jar/log/faceshow.log 2>&1 &
echo "faceshow restarted"

nohup /usr/local/java/jdk1.8.0_171/bin/java -jar /usr/local/jar/mishow.jar >/usr/local/jar/log/mishow.log 2>&1 &
echo "mishow restarted"

echo "===end==="

当然还有很多可以简洁的地方,可以慢慢搞。

说明点:

  • $(date "+%Y-%m-%d %H:%M:%S") 格式化当前时间 如:2020-11-29 16:45:01
  • grep -v grep 过滤 grep 自身进程
  • 空格该有的有,不该有的不要有
  • 执行脚本内指定需要写全路径,不然可能会报错找不到某某指令

脚本写好后 用 crontab 定时执行就可以了。

最后

脚本还是很重要的,平时绝大多数事情脚本都可以帮我们实现,科技不就是脚本实现化吗。

你可以使用cron来定时重启shell脚本。Cron是一个任务调度程序,它可以在指定的时间间隔内自动执行任务。以下是一个示例cron表达式,用于在每天凌晨4点重启脚本: ``` 0 4 * * * sh /path/to/your/script.sh ``` 这个表达式将在每天的4点执行你的脚本。你只需要将`/path/to/your/script.sh`替换为你实际的脚本路径。将这个表达式添加到你的系统的cron配置文件中,即可实现定时重启脚本的功能。 另外,你也可以使用while循环来实现定时重启。以下是一个示例脚本: ``` #!/bin/sh while true do sh /path/to/your/script.sh sleep 24h done ``` 这个脚本将在执行完你的脚本后等待24小时,然后再次执行。你只需要将`/path/to/your/script.sh`替换为你实际的脚本路径。将这个脚本保存为一个独立的文件,并在终端中运行它,即可实现定时重启脚本的功能。 希望这些信息对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Linux Shell脚本实现根据进程名定时杀死进程或者重启进程](https://blog.csdn.net/m0_38130105/article/details/90292355)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [通过shell脚本实现中断任务的自动重启](https://blog.csdn.net/u011345885/article/details/127282870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值