gameservergame-servergame-servershacktoberfestdedicated-game-serversgamelinuxgsmserverbashgaminglinuxmultiplayer-game-servershell
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.0 KiB
103 lines
3.0 KiB
#!/bin/bash
|
|
# LGSM command_debug.sh function
|
|
# Author: Daniel Gibbs
|
|
# Website: https://gameservermanagers.com
|
|
# Description: Runs the server without tmux and directly from the terminal.
|
|
|
|
local commandname="DEBUG"
|
|
local commandaction="Debug"
|
|
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
|
|
|
|
# Trap to remove lockfile on quit.
|
|
fn_lockfile_trap(){
|
|
# Remove lock file
|
|
rm -f "${rootdir}/${lockselfname}"
|
|
# resets terminal. Servers can sometimes mess up the terminal on exit.
|
|
reset
|
|
fn_print_ok_nl "Closing debug"
|
|
fn_script_log_pass "Debug closed"
|
|
core_exit.sh
|
|
}
|
|
|
|
check.sh
|
|
fix.sh
|
|
info_distro.sh
|
|
# NOTE: Check if works with server without parms. Could be intergrated in to info_parms.sh
|
|
fn_parms
|
|
fn_print_header
|
|
echo -e "${blue}Distro:\t${default}${distroname}"
|
|
echo -e "${blue}Arch:\t${default}${arch}"
|
|
echo -e "${blue}Kernel:\t${default}${kernel}"
|
|
echo -e "${blue}Hostname:\t${default}$HOSTNAME"
|
|
echo -e "${blue}tmux:\t${default}${tmuxv}"
|
|
echo -e "${blue}Avg Load:\t${default}${load}"
|
|
echo -e "${blue}Free Memory:\t${default}${physmemfree}"
|
|
echo -e "${blue}Free Disk:\t${default}${availspace}"
|
|
# GLIBC required
|
|
if [ -n "${glibcrequired}" ]; then
|
|
if [ "${glibcrequired}" == "NOT REQUIRED" ]; then
|
|
:
|
|
elif [ "${glibcrequired}" == "UNKNOWN" ]; then
|
|
echo -e "${blue}GLIBC required:\t${red}${glibcrequired}"
|
|
elif [ "$(printf '%s\n'${glibcrequired}'\n' ${glibcversion} | sort -V | head -n 1)" != "${glibcrequired}" ]; then
|
|
if [ "${glibcfix}" == "yes" ]; then
|
|
echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${green}Using GLIBC fix${default})"
|
|
else
|
|
echo -e "${blue}GLIBC required:\t${red}${glibcrequired} ${default}(${red}GLIBC version too old${default})"
|
|
fi
|
|
else
|
|
echo -e "${blue}GLIBC required:\t${green}${glibcrequired}${default}"
|
|
fi
|
|
fi
|
|
# Server ip
|
|
echo -e "${blue}Server IP:\t${default}${ip}:${port}"
|
|
# Server password
|
|
if [ -n "${serverpassword}" ]; then
|
|
echo -e "${blue}Server password:\t${default}${serverpassword}"
|
|
fi
|
|
echo ""
|
|
echo "Start parameters:"
|
|
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
|
|
echo "${executable} ${parms} -debug"
|
|
else
|
|
echo "${executable} ${parms}"
|
|
fi
|
|
echo ""
|
|
echo -e "Use for identifying server issues only!"
|
|
echo -e "Press CTRL+c to drop out of debug mode."
|
|
fn_print_warning_nl "If ${servicename} is already running it will be stopped."
|
|
echo ""
|
|
while true; do
|
|
read -e -i "y" -p "Continue? [Y/n]" yn
|
|
case $yn in
|
|
[Yy]* ) break;;
|
|
[Nn]* ) echo Exiting; return;;
|
|
* ) echo "Please answer yes or no.";;
|
|
esac
|
|
done
|
|
|
|
fn_print_info_nl "Stopping any running servers"
|
|
fn_script_log_info "Stopping any running servers"
|
|
sleep 1
|
|
exitbypass=1
|
|
command_stop.sh
|
|
fn_print_dots "Starting debug"
|
|
fn_script_log_info "Starting debug"
|
|
sleep 1
|
|
fn_print_ok_nl "Starting debug"
|
|
|
|
# create lock file.
|
|
date > "${rootdir}/${lockselfname}"
|
|
# trap to remove lockfile on quit.
|
|
trap fn_lockfile_trap INT
|
|
|
|
cd "${executabledir}"
|
|
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
|
|
${executable} ${parms} -debug
|
|
else
|
|
${executable} ${parms}
|
|
fi
|
|
|
|
# remove trap.
|
|
trap - INT
|
|
core_exit.sh
|