linux服务器挂掉自动重启脚本(转)
实现原理主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本。
首先我们要向crontab加入一个新任务
sudo crontab -e #进入编辑状态,选用vi编辑。 */1 * * * * sh /root/monitor.sh #添加每分钟检测
我这里只是简单的设置每分钟调用一个shell脚本monitor.sh。这里可以配置的更强大,大家可以去搜索一下crontab的教程,网上有很多这类的教程。
这里需要注意的是,很多教程配置command的时候直接使用/root/monitor.sh,我设置的时候发现这样配置不会执行shell脚本,前面加上sh后就能执行了。
然后我们开始写monitor.sh这个shell脚本。
#! /bin/sh proc_name="run_cloudweb.py" #进程名 proc_num() #查询进程数量 { num=$(ps -ef | grep $proc_name | grep -v grep | wc -l) return $num } proc_num number=$? #获取进程数量 if [ $number -eq 0 ] #如果进程数量为0 then #重新启动服务器,或者扩展其它内容。 cd /usr/shineonStuido/cloudweb/ sudo nohup python run_cloudweb.py & fi
这个脚本,只是简单的检测了进程是否存在,不存在就自动重启服务器。
这里其实也可以扩展一下,比如对日志文件的处理以及重启时间等的记录等等。
到这里就OK了,可以杀掉进程,自行测试一下啦~
如果使用
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
则num为字符串,return $num时会出错提示return必须为数字
转自:https://blog.csdn.net/cocos2dGirl/article/details/80492843
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
分类:
shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2017-04-19 linux awk命令详解
2017-04-19 kill mediaserver脚本
2017-04-19 #!/bin/bash