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

摘要:
实现原理主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则执行我们预设的重启脚本。首先我们要向crontab加入一个新任务sudocrontab-e#进入编辑状态,选用vi编辑。*/1****sh/root/monitor.sh#添加每分钟检测我这里只是简单的设置每分钟调用一个shell脚本monitor.sh。这里可以配置的更强大,大家可以去搜索一下crontab的教程,网上有很多这类的教程。然后我们开始写monitor.sh这个shell脚本。#获取进程数量if[$number-eq0]#如果进程数量为0then#重新启动服务器,或者扩展其它内容。

实现原理主要是使用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服务器挂掉自动重启脚本(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇转:如何用plsql从oracle中导入导出数据Linux远程图形化界面出错:MoTTY X11 proxy: Unsupported authorisation protocol下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Windows下运行XServer

一 XServer和XClient     X windows,笼统的称为X,是一种位图显示的视窗系统,是建立图形用户界面的标准工具包和协议。X 是协议,不是具体的应用程序。X 为GUI环境提供了基本的框架:在屏幕上绘图、移动视窗以及与鼠标键盘的互动。       现在多用x11版本,X11R6全称为X protocol version 11 rele...

Linux下安装RabbitMQ

前言 RabbitMQ是一个开源的消息中间件,采用 Erlang 语言进行编写,因此RabbitMQ的安装需要依赖Erlang,现在我们将在 Linux 下进行安装RabbitMQ。 本人环境:CentOS 6.5 64位 安装Erlang 在安装Erlang的时候,有很多种方法,最开始我是想按照官网先下载Erlang安装包,然后再进行安装。但发现下载Er...

GNU LD 脚本学习笔记

LD脚本(linker script)是什么 GNU ld是链接器,ld实际并不是GCC的一部分,ld属于binutils软件包。但是嵌入式开发时,下载的linaro GCC工具集中是包含 arm-linux-gnueabihf-ld 的。工作中我经常使用ARM的scatter文件,和这个LD脚本差不多,只不过scatter文件的功能要弱不少,这也是为什么...

[转]linux共享库位置配置(LD_LIBRARY_PATH环境变量 或者 更改/etc/lld.so.conf

Linux 运行的时候,是如何管理共享库(*.so)的?在 Linux 下面,共享库的寻找和加载是由 /lib/ld.so 实现的。 ld.so 在标准路经(/lib, /usr/lib) 中寻找应用程序用到的共享库。 但是,如果需要用到的共享库在非标准路经,ld.so 怎么找到它呢? 目前,Linux 通用的做法是将非标准路经加入 /etc/ld.so....

Linux系统调优

Linux核心参数都是放置在/proc下面;系统的参数都是放置在/proc/sys swap最好放置在运行最快的硬盘上面,但是swap并能取代ram,因为并有I/O上面的损耗,所以优先考虑检验内存没有泄露以及增加内存提高性能;另外swap退而求其次最好能够在一个单独的分区上面,或者是拥有多个swap分区,这样可以让linux系统能够多线程并行写到硬盘上...

linux安装IPython四种方法

IPython是Python的交互式Shell,提供了代码自动补完,自动缩进,高亮显示,执行Shell命令等非常有用的特性。特别是它的代码补完功能,例如:在输入zlib.之后按下Tab键,IPython会列出zlib模块下所有的属性、方法和类。完全可以取代自带的bash 下面介绍下linux安装IPython四种方法: 第一种:ipython源码安装ipy...