用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 &

浙公网安备 33010602011771号