- 修改 check_all.sh 和 start_all.sh,添加 relation_svr 和 team_svr 的启动和检查 - 更新 start_game_service.sh,注释掉部分服务器的启动脚本 - 二进制文件差异说明: - player_cross_svr_fight_rank.bin: 玩家跨服战斗排名数据更新 - player_cross_svr_wealth_rank.bin: 玩家跨服财富排名数据更新 - zone_svr 目录下多个玩家排名相关二进制文件更新
135 lines
3.7 KiB
Bash
Executable File
135 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 环境变量
|
||
export PATH=$PATH
|
||
|
||
################################################## 参数区 ##################################################
|
||
# 进程列表
|
||
proc_name=(
|
||
zone_svr_10_999_ag
|
||
db_proxy_10_999_ag
|
||
world_svr_10_999_ag
|
||
zone_conn_10_999_ag
|
||
redis_proxy_10_999_ag
|
||
world_busd_svr_10_999_ag
|
||
db_global_proxy_10_999_ag
|
||
chat_svr_10_999_ag
|
||
moderation_svr_10_999_ag
|
||
mq_proxy_10_999_ag
|
||
relation_svr_10_900_ag
|
||
team_svr_10_999_ag
|
||
)
|
||
|
||
# 进程状态
|
||
proc_ok=()
|
||
proc_no=()
|
||
|
||
################################################## 函数区 ##################################################
|
||
# 检查进程状态
|
||
function check_proc(){
|
||
# 检查所有进程
|
||
for p in ${proc_name[*]};do
|
||
# 获取数组长度
|
||
proc_ok_length=${#proc_ok[*]}
|
||
proc_no_length=${#proc_no[*]}
|
||
|
||
# 检查进程是否运行
|
||
run_count=$(ps -ef|grep "${p}.pid"|grep -v grep|wc -l)
|
||
if [ "${run_count}" == "1" ];then
|
||
is_zone_svr=$(echo "${p}" |grep -c 'zone_svr')
|
||
stat_file="/data/home/mmog/server_999/runenv/zone_svr/bin/zone_svr_10_999_ag.stat"
|
||
|
||
# 检查ZONE_SVR进程
|
||
if [ "${is_zone_svr}" == "1" ] && [ -f "${stat_file}" ];then
|
||
# 循环检查启动状态
|
||
for i in {1..10};
|
||
do
|
||
zone_stat=$(cat "${stat_file}")
|
||
# 进程已停止
|
||
if [ "${zone_stat}" == "0" ];then
|
||
proc_no[${proc_no_length}]=$p
|
||
break
|
||
# 进程启动中
|
||
elif [ "${zone_stat}" == "1" ];then
|
||
sleep 1
|
||
# 进程运行中
|
||
elif [ "${zone_stat}" == "2" ];then
|
||
proc_ok[${proc_ok_length}]=$p
|
||
break
|
||
fi
|
||
done
|
||
|
||
# 循环检查后还是不为2,则标记为失败
|
||
zone_stat=$(cat "${stat_file}")
|
||
if [ "${zone_stat}" != "2" ];then
|
||
proc_no[${proc_no_length}]=$p
|
||
fi
|
||
else
|
||
proc_ok[${proc_ok_length}]=$p
|
||
fi
|
||
else
|
||
proc_no[${proc_no_length}]=$p
|
||
fi
|
||
done
|
||
}
|
||
|
||
# 本地打印格式
|
||
function local_print(){
|
||
echo "------------------------------"
|
||
echo " 墨迹大侠_中顺_999服 "
|
||
echo "------------------------------"
|
||
echo " 已启动进程信息 "
|
||
echo "------------------------------"
|
||
for i in ${proc_ok[*]};do
|
||
ps -ef|grep "${i}.pid"|grep -v grep|awk -v "name=$i" '{print $5,name}'
|
||
done
|
||
echo "------------------------------"
|
||
echo " 未启动进程信息 "
|
||
echo "------------------------------"
|
||
for i in ${proc_no[*]};do
|
||
echo "$i"
|
||
done
|
||
echo "------------------------------"
|
||
}
|
||
|
||
# 远程打印格式
|
||
function remote_print(){
|
||
#打印启动进程信息
|
||
echo "<start>"
|
||
if [ "${#proc_ok[*]}" == "0" ]; then
|
||
echo "_love_"
|
||
else
|
||
for i in ${proc_ok[*]};do
|
||
ps -ef|grep "${i}.pid"|grep -v grep|awk -v "name=$i" '{print $5,name}'
|
||
done
|
||
fi
|
||
echo "<start>"
|
||
|
||
#打印停止进程信息
|
||
echo "<stop>"
|
||
if [ "${#proc_no[*]}" == "0" ]; then
|
||
echo "_love_"
|
||
else
|
||
for i in ${proc_no[*]};do
|
||
echo "$i"
|
||
done
|
||
fi
|
||
echo "<stop>"
|
||
}
|
||
|
||
# 打印检查结果
|
||
function check_result(){
|
||
# 检查进程
|
||
check_proc
|
||
# 打印结果
|
||
if [ -z $1 ];then
|
||
local_print
|
||
else
|
||
remote_print
|
||
fi
|
||
}
|
||
|
||
################################################## 任务区 ##################################################
|
||
# 检查运行结果
|
||
check_result $1
|