You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
8.0 KiB
Bash
148 lines
8.0 KiB
Bash
# linux script logic misc functions encapsulation
|
|
# Longwei Lai
|
|
###################################################################
|
|
|
|
source "${____LOGIC_SCRIPT_PATH}/lnx_logic_defs.sh"
|
|
|
|
function list_help()
|
|
{
|
|
# foreground/background: 3:foreground 4:background
|
|
# colors comments: 0:black 1:red 2:green 3:yellow 4:blue 5:purple 6:sky-blue 7:white
|
|
# reset all: \e[0m
|
|
|
|
clear
|
|
echo -e "\e[1;35musage: ./run <command> [command-options...]\e[0m"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;32mserver build/tarball commands:\e[0m"
|
|
echo -e " \e[1;33mup\e[0m: update from git"
|
|
echo -e " \e[1;33mver_info\e[0m: show version info"
|
|
echo -e " \e[1;33mswitch_branch\e[0m: <\e[1;37mthe_new_branch\e[0m>: switch branch"
|
|
echo -e " \e[1;33mmake\e[0m/\e[1;33mbuild\e[0m <\e[1;37mdebug\e[0m/\e[1;37mrelease\e[0m> <\e[1;37mproduct\e[0m/\e[1;37minternal\e[0m/\e[1;37mpressure_test\e[0m\e[0m>: "
|
|
echo " build servers, default build release version servers"
|
|
echo " -- default use release setting to build"
|
|
echo " -- default use product setting to build"
|
|
echo -e " \e[1;33mtar\e[0m <\e[1;37mdebug\e[0m/\e[1;37mrelease\e[0m> <\e[1;37mproduct\e[0m/\e[1;37minternal\e[0m/\e[1;37mpressure_test\e[0m> <\e[1;37mfull\e[0m/\e[1;37mpure\e[0m>: tarball servers"
|
|
echo " tarball servers default build all versions servers"
|
|
echo " -- default use release setting to build"
|
|
echo " -- default use product setting to build"
|
|
echo " -- default use pure setting to puild"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;32mserver control commands:\e[0m"
|
|
echo -e " \e[1;33mstart_xxx\e[0m: start server"
|
|
echo -e " start specific server:"
|
|
echo -e " \e[1;33mstop_xxx\e[0m: stop server"
|
|
echo -e " \e[1;33msafestop_xxx\e[0m: safe stop server"
|
|
echo -e " \e[1;33mrestart_xxx\e[0m: restart server"
|
|
echo -e " \e[1;33mset_xxx_logic_status\e[0m: set server logic status(progress independent)"
|
|
echo -e " \e[1;32mserver types:\e[0m"
|
|
echo -e " * \e[1;36mgameserver:\e[0m game server, for get more informations about gameserver, run \e[1;37m./run help_gameserver\e[0m"
|
|
echo -e " * \e[1;36mloginserver:\e[0m login server, for get more informations about loginserver, run \e[1;37m./run help_loginserver\e[0m"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;32mfaketime commands:\e[0m"
|
|
echo -e " \e[1;33mread_faketime\e[0m: read now fake time setting"
|
|
echo -e " \e[1;33mclear_faketime\e[0m: clear fake time setting"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;32mtest commands:\e[0m"
|
|
echo " ...."
|
|
}
|
|
|
|
function list_help_gameserver()
|
|
{
|
|
clear
|
|
echo -e "\e[1;35mgameserver manaual page:\e[0m"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;33mstart_gameserver\e[0m: <\e[1;37mfakedate=xxxx-xx-xx\e[0\e[0m> <\e[1;37mfaketime=xx:xx:xx\e[0m> <\e[1;37mdontfaketime=YES/NO\e[0m>"
|
|
echo -e " \e[0;32mstart gameserver\e[0m"
|
|
echo -e " \e[1;37mfakedate=xxxx-xx-xx\e[0m: fake date start, eg: 2017-08-08"
|
|
echo -e " \e[1;37mfaketime=xx:xx:xx\e[0m: fake time start, eg: 08-30-59"
|
|
echo -e " \e[1;37mdontfaketime=YES/NO\e[0m: use fake time setting or not, default is NO"
|
|
echo -e " \e[1;33mstop_gameserver\e[0m:"
|
|
echo -e " \e[0;32mstop gameserver, for now, don't need any arguments to specific\e[0m"
|
|
echo -e " \e[1;33mrestart_gameserver\e[0m: <\e[1;37mfakedate=xxxx-xx-xx\e[0\e[0m> <\e[1;37mfaketime=xx:xx:xx\e[0m> <\e[1;37mdontfaketime=YES/NO\e[0m>"
|
|
echo -e " \e[0;32mrestart gameserver\e[0m"
|
|
echo -e " \e[1;37mfakedate=xxxx-xx-xx\e[0m: fake date start, eg: 2017-08-08"
|
|
echo -e " \e[1;37mfaketime=xx:xx:xx\e[0m: fake time start, eg: 08-30-59"
|
|
echo -e " \e[1;37mdontfaketime=YES/NO\e[0m: use fake time setting or not, default is NO"
|
|
echo -e " \e[1;33msafestop_gameserver\e[0m:"
|
|
echo -e " \e[0;32mlike stop_gameserver, but this command will safety stop gameserver(all game data will be saved before gameservers killed)\e[0m"
|
|
echo -e " \e[1;33mgameserver_status\e[0m:"
|
|
echo -e " \e[0;32mlist gameserver status\e[0m"
|
|
echo -e " \e[1;33mgameserver_logic_status\e[0m:"
|
|
echo -e " \e[0;32mlist gameserver logic status(progress independent)\e[0m"
|
|
echo -e " \e[1;33mset_gameserver_logic_status\e[0m:"
|
|
echo -e " \e[0;32mset gameserver logic status(progress independent)\e[0m"
|
|
}
|
|
|
|
function list_help_loginserver()
|
|
{
|
|
clear
|
|
echo -e "\e[1;35mloginserver manaual page:\e[0m"
|
|
echo -e "\e[1;37m-----------------------------------------------------------------------\e[0m"
|
|
echo -e " \e[1;33mstart_loginserver\e[0m: <\e[1;37mfakedate=xxxx-xx-xx\e[0\e[0m> <\e[1;37mfaketime=xx:xx:xx\e[0m> <\e[1;37mdontfaketime=YES/NO\e[0m>"
|
|
echo -e " \e[0;32mstart loginserver\e[0m"
|
|
echo -e " \e[1;37mfakedate=xxxx-xx-xx\e[0m: fake date start, eg: 2017-08-08"
|
|
echo -e " \e[1;37mfaketime=xx:xx:xx\e[0m: fake time start, eg: 08-30-59"
|
|
echo -e " \e[1;37mdontfaketime=YES/NO\e[0m: use fake time setting or not, default is NO"
|
|
echo -e " \e[1;33mstop_loginserver\e[0m:"
|
|
echo -e " \e[0;32mstop loginserver, for now, don't need any arguments to specific\e[0m"
|
|
echo -e " \e[1;33mrestart_loginserver\e[0m: <\e[1;37mfakedate=xxxx-xx-xx\e[0\e[0m> <\e[1;37mfaketime=xx:xx:xx\e[0m> <\e[1;37mdontfaketime=YES/NO\e[0m>"
|
|
echo -e " \e[0;32mrestart loginserver\e[0m"
|
|
echo -e " \e[1;37mfakedate=xxxx-xx-xx\e[0m: fake date start, eg: 2017-08-08"
|
|
echo -e " \e[1;37mfaketime=xx:xx:xx\e[0m: fake time start, eg: 08-30-59"
|
|
echo -e " \e[1;37mdontfaketime=YES/NO\e[0m: use fake time setting or not, default is NO"
|
|
echo -e " \e[1;33msafestop_loginserver\e[0m:"
|
|
echo -e " \e[0;32mlike stop_loginserver, but this command will safety stop loginserver(all game data will be saved before loginservers killed)\e[0m"
|
|
echo -e " \e[1;33mloginserver_status\e[0m:"
|
|
echo -e " \e[0;32mlist loginserver status\e[0m"
|
|
echo -e " \e[1;33mloginserver_logic_status\e[0m:"
|
|
echo -e " \e[0;32mlist loginserver logic status(progress independent)\e[0m"
|
|
echo -e " \e[1;33mset_loginserver_logic_status\e[0m:"
|
|
echo -e " \e[0;32mset loginserver logic status(progress independent)\e[0m"
|
|
}
|
|
|
|
|
|
function env_ensure()
|
|
{
|
|
# force source /etc/profile
|
|
source /etc/profile
|
|
|
|
# add SVR_PATH to LD_LIBRARY_PATH variable and export it
|
|
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${SVR_PATH}"
|
|
|
|
# setup linux sys listen backlog size(dynamic change) to ${willsetbacklog}
|
|
local willsetbacklog=4096
|
|
local smcfile=/proc/sys/net/core/somaxconn
|
|
if [ -w "${smcfile}" ]; then
|
|
local oldbacklog=`cat "${smcfile}"`
|
|
if [ "$oldbacklog" -lt "${willsetbacklog}" ]; then
|
|
log_warn "system listen backlog config[${oldbacklog}] too small, try to config to 4096..."
|
|
echo -n ${willsetbacklog} > "${smcfile}"
|
|
local retcode=$?
|
|
if [ "${retcode}" -ne 0 ]; then
|
|
log_err "modify listen backklog size failed, permission deny? return code: ${retcode}"
|
|
exit $retcode
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# setup max open file limits to 65535
|
|
ulimit -n 65535
|
|
retcode=$?
|
|
if [ "${retcode}" -ne 0 ]; then
|
|
echo "mofify max open file size failed, return code: ${retcode}"
|
|
exit $retcode
|
|
fi
|
|
|
|
# setup coredump file limits to ulimited
|
|
ulimit -c unlimited
|
|
retcode=$?
|
|
if [ "${retcode}" -ne 0 ]; then
|
|
echo "mofify coredump file limits to ulimited failed, return code: ${retcode}"
|
|
exit $retcode
|
|
fi
|
|
|
|
export SKYNET_THREAD=`cat /proc/cpuinfo | grep "processor" |wc -l`
|
|
echo "SKYNET_THREAD is" ${SKYNET_THREAD}
|
|
}
|
|
|