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
|