74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| cd $(cd "$(dirname "$0")" && pwd)
 | |
| 
 | |
| echo "======================【停止】========================"
 | |
| 
 | |
| path=`pwd`
 | |
| datetime=`date "+%Y-%m-%d.%H:%M:%S"`
 | |
| curdoc=$(pwd|awk -F \/ '{print $NF}')
 | |
| 
 | |
| daemon_pid=`ps aux |grep $path|grep daemon.sh|grep -v grep|awk '{print $2}'`
 | |
| if [[ -n $daemon_pid ]]; then
 | |
|     echo "结束守护进程:$path daemon.sh"
 | |
|     kill -15 $daemon_pid
 | |
| fi
 | |
| 
 | |
| #关闭网关
 | |
| pid=`ps aux |grep $path|grep gateway|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|awk '{print $2}'`
 | |
| if [[ -n $pid ]]; then
 | |
| 	echo "开始结束服务器: gateway (pid=$pid)"
 | |
| 	kill -15 $pid
 | |
| 	NUM=10
 | |
| 	while true; do
 | |
| 		datetime=`date "+%Y-%m-%d.%H:%M:%S"`
 | |
| 		proc=`ps aux |grep $path|grep gateway|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|wc -l`
 | |
| 		if [ $proc == 0 ];
 | |
| 		then
 | |
| 			break
 | |
| 		fi
 | |
| 		if [ $NUM -lt 0 ];
 | |
| 		then
 | |
| 			kill -9 $pid
 | |
| 			echo $datetime" 游戏服务 "$path" gateway 强制结束"
 | |
| 			break
 | |
| 		fi
 | |
| 		echo $datetime" 游戏服务 "$path" gateway 结束中..."
 | |
| 		sleep 1
 | |
| 		let NUM--
 | |
| 	done
 | |
| 	echo "已结束服务器: gateway"
 | |
| fi
 | |
| 
 | |
| #关闭其他服
 | |
| arr_srv="logicserver dbserver robot"
 | |
| 
 | |
| for srv in ${arr_srv[@]};
 | |
| do
 | |
|     pid=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|awk '{print $2}'`
 | |
|     if [[ -n $pid ]]; then
 | |
|         echo "开始结束服务器: $srv (pid=$pid)"
 | |
|         kill -15 $pid
 | |
|         NUM=10
 | |
|         while true; do
 | |
|             datetime=`date "+%Y-%m-%d.%H:%M:%S"`
 | |
|             proc=`ps aux |grep $path|grep $srv|grep -v grep|grep "\<$curdoc\>"|grep -v "/bin/bash"|wc -l`
 | |
|             if [ $proc == 0 ];
 | |
|             then
 | |
|                 break
 | |
|             fi
 | |
|     		if [ $NUM -lt 0 ];
 | |
|     		then
 | |
|     			kill -9 $pid
 | |
|     			echo $datetime" 游戏服务 "$path" "$srv" 强制结束"
 | |
|     			break
 | |
|     		fi
 | |
|             echo $datetime" 游戏服务 "$path" "$srv" 结束中..."
 | |
|             sleep 1
 | |
|             let NUM--
 | |
|         done
 | |
|         echo "已结束服务器: $srv"
 | |
|     fi
 | |
| done
 | |
| 
 | |
| exit 0
 |