转载请注明出处:帘卷西风的专栏(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. memset功能的具体说明

    1.void *memset(void *s,int c,size_t n)总的效果:内存空间开辟了 s 第一 n 字节的值设置为一个值 c. 2.样本#include void main(){cha ...

  2. RH033读书笔记(9)-Lab 10 Understanding the Configuration Tools

    Lab 10 Understanding the Configuration Tools Sequence 1: Configuring the Network with system-config- ...

  3. 【Android进阶】使用第三方平台ShareSDK实现新浪微博的一键分享功能

    在公司最近的一个项目中,需要实现一键分享功能,在这里我使用的是第三方平台ShareSDK,将使用经验与大家分享 先看效果图 主界面 分享界面 由于第一次使用,所以需要先进行新浪授权,授权界面 分享结果 ...

  4. HDU 4067 Random Maze

    意甲冠军: 一个"随机图"它被定义为具有以下性质如: 一个入口和一个出口 有向图 对于入口  出度比入度大1 对于出口  入度比出度大1 对于其它点  入度等于出度 现给出一幅有向 ...

  5. Tri_integral Summer Training 5 总结

    比赛 题目 B D E G H I J 这是泰国的一场区域赛,除了C题英语非常抽以外,其余题目还不算难读. 一开场就发现了三道很水的题目,0:21:34就把三道题给过了,都是1A,赞Moor的手速. ...

  6. 基于最简单的FFmpeg采样读取内存读写:内存玩家

    ===================================================== 基于最简单的FFmpeg样品系列读写内存列表: 最简单的基于FFmpeg的内存读写的样例:内 ...

  7. 使用更清晰DebugLog开发和调试工具

    在开发和应用的开发和调试过程中难免会发现故障的过程中.我相信很多做iOS开发程序员Xcode的debug调试功能大加关注. 但在这样做Android开发过程中,却不那么方便,虽然IDE也提供了debu ...

  8. mysql大写和小写问题

    曾经做企业项目的时候,用的都是oracle数据库,在新公司项目用的是mysql,有关mysql大写和小写的问题 1   windows下默认mysql是不区分大写和小写的,要想让其支持大写和小写.更改 ...

  9. jekyll博客安装

    摘要: 一直用Mac,换了新公司使用的电脑是windows,网上粗略的看了一下Jekyll的安装.简略的实现了一遍 首先安装Ruby "Ruby安装文件下载地址" 下载对应版本,我 ...

  10. HDU 3853 LOOPS 可能性dp(水

    在拐~ #include <stdio.h> #include <cstring> #include <iostream> #include <map> ...