转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog)

本周開始,新手游进行删档封測阶段,前两天表现还好,今天更新后出现几次宕机行为。比較影响玩家的測试和体验,我们的server管理系统尚未完好,为了晚上能够预防宕机造成损失,先用一种简单的方案暂时顶替一下。

实现原理主要是使用linux提供的crontab机制。定时查询server进程是否存在,假设宕机则处理我们预设的脚本。

首先我们要向crontab增加一个新任务。

# 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="WorldFrame_d"        #进程名

proc_num()                      #查询进程数量
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num
} proc_num
number=$? #获取进程数量
if [ $number -eq 0 ] #假设进程数量为0
then #又一次启动server,或者扩展其他内容。 cd /longwen/server/sbin/linux; ./WorldFrame_d -c 1
fi

我这个脚本,仅仅是简单的检測了进程是否存在。不存在就自己主动重新启动server。

这里事实上也能够扩展一下。比方对日志文件的处理以及重新启动时间等的记录等等。

须要注意的是在windows编辑sh文件要注意格式问题(CR/LR),否则easy出现sh运行错误的BUG。

好了。进行測试吧,我这里測试OK,记录一下,希望能帮到其他遇到相似问题的同学。

补充,今天測试的时候发现有时候不运行。跟踪后发现crontab进程出现错误,重新启动一下就ok了。

使用以下的命令查看crond的状态。

#service crond status

假设出现crond (pid  xxxx) is running...表示正常,否则表示有异常行为。

我今天出现了crond dead but subsys locked

#service crond start

服务重新启动后问题解决。

版权声明:本文博主原创文章,博客,未经同意不得转载。

左右linuxserver自己主动重启过程监控和简单的解决方案的更多相关文章

  1. 阿里云 elastic search 重启 过程

    阿里云 es 重启 elasticsearch  重启 过程 实例变更中   53.13%   准备ECS资源 已完成节点数:4/4, 进度:100%     准备容器服务 进度:100%     变 ...

  2. 通过 yum update 将系统从CentOS 6.2 升级到 CentOS 6.6 及升级过程中的简单排错

    本文说明 本文写于2014年的WP中,后WP停止维护,今天翻到此记录整理下,记录于此,方便日后查看. 话说那时候写博客真是认真啊~哈哈~ 升级前的系统信息 [root@thatsit ~]# unam ...

  3. ubuntu 的mysql 安装过程和无法远程的解决方案

    ubuntu 的mysql 安装过程和无法远程的解决方案 安装完mysql-server启动mysqlroot@ubuntu:# /etc/init.d/mysql start (如果这个命令不可以, ...

  4. ORACLE索引监控的简单使用

    --ORACLE索引监控的简单使用-------------------------2013/11/20 说明:     应用程序在开发时,可能会建立众多索引,但是这些索引的使用到底怎么样,是否有些索 ...

  5. 驰骋工作流引擎-CCMobile与安卓、IOS集成过程中的问题与解决方案

    CCMobile与安卓.IOS集成过程中的问题与解决方案 前言: CCMobile(2019版本)是CCFlow&JFlow 的一款移动端审批的产品.系统基于mui框架开发,是一款可以兼容An ...

  6. Github下载慢和下载过程中断等情况的解决方案

    Github下载慢和下载过程中断等情况的解决方案   最近老大push项目,正常的git clone每次都是下载一部分就断掉了. 尝试了修改hosts文件的方式,更换了延迟最低的域名也没啥用(难道我姿 ...

  7. Linux监控服务并主动重启

    Linux查询后台进程,如果没有进程号,则重启服务: #!/bin/sh basepath=$(cd ``; pwd) while true do procnum=`ps -ef|grep " ...

  8. SQL监控:mysql及mssql数据库SQL执行过程监控审计

    转载 Seay_法师 最近生活有很大的一个变动,所以博客也搁置了很长一段时间没写,好像写博客已经成了习惯,搁置一段时间就有那么点危机感,心里总觉得不自在.所以从今天起还是要继续拾起墨笔(键盘),继续好 ...

  9. Zabbix使用主动模式进行监控配置方法

    一直都是在用Zabbix的被动模式(即默认模式)进行监控. 但是总有些情况是不适用被动模式的,刚好工作上有这个需求,于是捣鼓了一下,发现配置起来也挺简单的. (1)Agent配置 修改Zabbix-a ...

随机推荐

  1. android_定义多个Activity及跳转

    说明:在Android应用程序其中创建多个activity,而且启动一个activity的方法,以及activity之间的跳转. 样例:在MainActivity里面加入一个button,触动butt ...

  2. 【C语言探索之旅】 第一部分第四课第一章:变量的世界之内存那档事

    内容简介 1.课程大纲 2.第一部分第四课第一章:变量的世界之内存那档事 3.第一部分第四课第二章预告:变量的世界之声明变量 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答 ...

  3. poj2112 Optimal Milking --- 最大流量,二分法

    nx一个挤奶器,ny奶牛,每个挤奶罐为最m奶牛使用. 现在给nx+ny在矩阵之间的距离.要求使所有奶牛挤奶到挤奶正在旅程,最小的个体奶牛步行距离的最大值. 始感觉这个类似二分图匹配,不同之处在于挤奶器 ...

  4. [Ext JS 4] 实战Chart 协调控制(单一的坐标,两个坐标)

    前言

  5. SharePoint 2013 创建一个搜索中心和搜索设置

    这篇文章不是太多深奥的东西,只是一个简单的搜索配置,假设你已经有了,请跳过这篇文章. 行,输入信息,大家都知道,搜索SharePoint一个主要特征.下列,我们在搜索中心创建个人资料. 1.创建Sea ...

  6. 微服务API Gateway

    翻译-微服务API Gateway 原文地址:http://microservices.io/patterns/apigateway.html,以下是使用google翻译对原文的翻译. 让我们想象一下 ...

  7. MVC中的Views下面的视图放到Views文件夹外

    实战:把ASP.NET MVC中的Views下面的视图放到Views文件夹外   园子里写的文章的都是把控制器从传统的项目中的Controllers拿出来单独放,但很少几乎没有把视图从Views拿出去 ...

  8. [SignalR]Groups操作——后续

    原文:[SignalR]Groups操作——后续 继续http://www.cnblogs.com/YanZhiwei/p/3359175.html之前,那怎么实现发送的消息推送到隶属于这个组的用户呢 ...

  9. atitit.无损传输二进制数据串传输网络

    atitit.无损传输二进制数据串传输网络 1. gbk的网络传输问题,为什么gbk不能使用来传输二进制数据 1 2. base64 2 3. iso-8859-1  (推荐) 2 4. utf-8  ...

  10. cocos2d-x3.0 lua学习(一个)

    最近开始学习Lua这里记录下一个写简单Lua代码,但我在写Lua代码.自己主动的代码提示的一些问题,谁希望提供下很好的解决方案,编辑我用SubLime Text2 test.lua.这里创建一个场景, ...