转载请注明出处:帘卷西风的专栏(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. Convert View To Bitmap

    public static Bitmap convertViewToBitmap(View view) { view.destroyDrawingCache(); view.measure(View. ...

  2. chrome 关闭自己主动更新

    一不小心,把chrome更新成了37, chrome 37不支持模态窗体[ window.showModalDialog() ],折腾死人了. 实在抵不住,仅仅好降级成36.0.1985.143m 至 ...

  3. Unity3D 表对象分类中的实现(C#)

    // Sort by distance in descending order private void SortTargetsByDistance () { targets.Sort(delegat ...

  4. LeetCode Solutions : Swap Nodes in Pairs

    Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2-& ...

  5. 全栈JavaScript之路(十七)HTML5 新增字符集属性

    HTML5 添加�了几个文档字符集属性. document.charset : 表示文档的实际使用的字符集. document.defaultCharset: 表示默认的字符集,跟浏览器以及操作系统设 ...

  6. c++学籍管理系统v1.10

    //////////////新增添加学生和成绩录入系统 #include<iostream> #include <string> #include<conio.h> ...

  7. ListView分页显示

    出在:http://blog.csdn.net/tu_bingbing/article/details/13275107         当ListView要显示的数据过多时,为了更快的响应用户,这个 ...

  8. SQL Server AlwaysOn中的几个误区

    原文:SQL Server AlwaysOn中的几个误区 AlwaysOn自SQL Server2012之后已经发布很久了,最近我在给一些客户做咨询的时候经常被问起是不是应该使用AlwaysOn,从客 ...

  9. Java于 初始化序列?

    我们正处于java于 Java中初始化的顺寻? java代码: package sru.love.c; class Person { String name = "Person"; ...

  10. 微服务API Gateway

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