用shell 脚本写守护进程

最近在做服务器的开发与上线维护工作,服务器上线之初,一般多多少少会出现一些不稳定因素,为了尽可能给玩家带来很好的体验,所以,要写一个守护进程守护着,如果服务器一崩溃,可以起到马上重启,保证业务能继续运行的目的

我的服务器起动脚本如下:

 1 /bin/sh
 2 
 3 dowork()
 4 {
 5     startpt
 6     startss
 7 }
 8 startss()
 9 {
10 
11     echo "starting test_fxjsserver"
12 #   $PWD/test_fxjsserver 1>/dev/null   2>&1 &
13     ulimit -n 51200
14     ulimit -n >$PWD/ulimt.txt
15     $PWD/test_fxjsserver -d -c test_fxjsserver.json 
16     sleep 1
17     ps x|grep "test_fxjsserver"|sed -e '/grep/d'
18 }
19 stopss()
20 {
21     #pkill test_fxjsserver -u `whoami` 
22     ps x |grep $PWD/test_fxjsserver | sed -e '/grep/d' | gawk '{print "panic."$1}' | xargs rm -v
23     ps x |grep $PWD/test_fxjsserver | sed -e '/grep/d' | gawk '{print $1}' | xargs kill -9
24     echo "stop test_fxjsserver"
25 }
26 
27 echo "--------------------------------------------------"
28 echo "--------------------START-------------------------"
29 echo "--------------------------------------------------"
30 #pkill -9 watch.sh -u `whoami`
31 #nohup ./watch.sh &
32 case $1 in
33 
34     ss)
35     stopss
36     startss
37     ;;
38 
39     *)
40     stopss
41     sleep 1
42     startss
43     ;;
44 esac
45 echo "--------------------------------------------------"
46 echo "----------------------DONE------------------------"
47 echo "--------------------------------------------------"

守护进程的脚本 keep.sh

 

#!/bin/sh
while true;do
    number=`ps -ef | grep '/home/bwgame/deploy/test_fxjsserver/test_fxjsserver -d -c test_fxjsserver.json' |wc -l`
    echo $number
    if [ $number -eq 1 ];then
        echo "stating ....."
        $PWD/run.sh
    else
        echo "runing......"
    fi  
    sleep 2
done

 把这个守护进程后台启动:./keep.sh >keep.log 2>&1 &

posted @ 2015-10-04 12:13  程序world  阅读(364)  评论(0)    收藏  举报