diff --git a/LogicServer/daemon.sh b/LogicServer/daemon.sh new file mode 100644 index 0000000..d8d1d99 --- /dev/null +++ b/LogicServer/daemon.sh @@ -0,0 +1,50 @@ +#!/bin/bash +if [ -n "$1" ]; then + dm=$1 +else + dm='_r' +fi + +if [ -n "$2" ]; then + path=$2 +else + path=`pwd` +fi + + # check LogicServer +while true; do + sleep 8 + + datetime=`date "+%Y-%m-%d.%H:%M:%S"` + + 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 +done \ No newline at end of file diff --git a/LogicServer/run.sh b/LogicServer/run.sh index dfe835f..684a16e 100755 --- a/LogicServer/run.sh +++ b/LogicServer/run.sh @@ -2,8 +2,10 @@ ./stop.sh +echo "["$datetime"] 正在启动 Logic 服务器 [logicserver$dm]..." + if [ "$1" == "Debug" ]; then ./logicserver_d LogicServerLinux.txt else ./logicserver_r LogicServerLinux.txt -fi +fi \ No newline at end of file diff --git a/daemon.sh b/daemon.sh index d159969..4053c0d 100755 --- a/daemon.sh +++ b/daemon.sh @@ -30,39 +30,6 @@ while true; do 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 diff --git a/run.sh b/run.sh index e6dec42..f2a9ab4 100755 --- a/run.sh +++ b/run.sh @@ -16,9 +16,9 @@ echo "["$datetime"] 正在启动 DB 服务器 [dbserver$dm]..." $path/DBServer/dbserver$dm $path/DBServer/DBServerLinux.txt > /dev/null & echo "执行命令:$path/DBServer/dbserver$dm $path/DBServer/DBServerLinux.txt" -echo "["$datetime"] 正在启动 Logic 服务器 [logicserver$dm]..." -$path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt > /dev/null & -echo "执行命令:$path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt" +# echo "["$datetime"] 正在启动 Logic 服务器 [logicserver$dm]..." +# $path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt > /dev/null & +# echo "执行命令:$path/LogicServer/logicserver$dm $path/LogicServer/LogicServerLinux.txt" echo "["$datetime"] 正在启动 Gateway 服务器 [gateway$dm]..." $path/Gateway/gateway$dm $path/Gateway/GateWay.txt > /dev/null &