linux服务器挂掉自动重启脚本(转)

Posted 鸭子船长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于linux服务器挂掉自动重启脚本(转)的主要内容,如果未能解决你的问题,请参考以下文章

怎样使程序开机自启动和程序挂掉自动重启

怎样使程序开机自启动和程序挂掉自动重启

怎样使程序开机自启动和程序挂掉自动重启

怎样使程序开机自启动和程序挂掉自动重启

linux网卡掉包或挂掉解决办法

docker 容器挂掉后 怎么自动重启