72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/bin/bash
 | |
| if [ -n "$1" ]; then
 | |
|     dm=$1
 | |
| else
 | |
|     dm='_r'
 | |
| fi
 | |
| 
 | |
| if [ -n "$2" ]; then
 | |
|     path=$2
 | |
| else
 | |
|     path=`pwd`
 | |
| fi
 | |
| 
 | |
| curdoc=$(pwd|awk -F \/ '{print $NF}')
 | |
| 
 | |
| while true; do
 | |
| 	sleep 8
 | |
| 
 | |
|     datetime=`date "+%Y-%m-%d.%H:%M:%S"`
 | |
| 
 | |
| 	ret=`ps x |grep $path/DBServer/dbserver$dm|grep -v grep|grep -v "/bin/bash"|wc -l`
 | |
| 	if [ $ret == 0 ]; then
 | |
| 		$path/DBServer/dbserver$dm $path/DBServer/DBServerLinux.txt > /dev/null &
 | |
| 		echo "[$datetime] $path/DBServer/dbserver$dm $path/DBServer/DBServerLinux.txt"
 | |
| 	fi
 | |
| 
 | |
| 	ret=`ps x |grep $path/Gateway/gateway$dm|grep -v grep|grep -v "/bin/bash"|wc -l`
 | |
| 	if [ $ret == 0 ]; then
 | |
| 		$path/Gateway/gateway$dm $path/Gateway/GateWay.txt > /dev/null &
 | |
| 		echo "[$datetime] $path/Gateway/gateway$dm $path/Gateway/GateWay.txt"
 | |
| 	fi
 | |
| 
 | |
|     # check LogicServer
 | |
| 
 | |
| 	ret=`ps x |grep $path/LogicServer/logicserver$dm|grep -v grep|grep -v "/bin/bash"|wc -l`
 | |
| 	if [ $ret == 0 ]; then
 | |
| 		$path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt > /dev/null &
 | |
| 		echo "[$datetime] $path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt"
 | |
| 	else
 | |
|     	pid=`top -bn 1 -i -c |awk '{ if (NR > 6) print }' |awk '{ if ($9 > 99) print $1}' |head -n1`
 | |
|         if [[ -n $pid ]]; then
 | |
|             echo "[$datetime] 开始结束服务器: $curdoc LogicServer (pid=$pid)"
 | |
|             kill -15 $pid
 | |
|             NUM=2
 | |
|             while true; do
 | |
|                 datetime=`date "+%Y-%m-%d.%H:%M:%S"`
 | |
|                 proc=`ps aux |grep $path|grep logicserver|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|wc -l`
 | |
|                 if [ $proc == 0 ]; then
 | |
|                     break
 | |
|                 fi
 | |
|         		if [ $NUM -lt 0 ]; then
 | |
|         		    echo "[$datetime] 游戏服务 $curdoc LogicServer 强制结束"
 | |
|         			kill -9 $pid
 | |
|             		$path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt > /dev/null &
 | |
|             		echo "[$datetime] 游戏服务 $curdoc LogicServer 启动完毕"
 | |
|             		echo "--------------------------------------------------"
 | |
|         			break
 | |
|         		fi
 | |
|         		echo "[$datetime] 游戏服务 $curdoc LogicServer 结束中..."
 | |
|                 sleep 1
 | |
|                 let NUM--
 | |
|             done
 | |
|         fi
 | |
| 	fi
 | |
| 
 | |
| 	#ret=`ps x |grep $path/LogicServer/robot$dm|grep -v grep|grep -v "/bin/bash"|wc -l`
 | |
| 	#if [ $ret == 0 ]; then
 | |
| 		#$path/LogicServer && ./robot$dm
 | |
| 		#echo "[$datetime] $path/LogicServer/robot$dm"
 | |
| 	#fi
 | |
| done
 |