|
|
@@ -74,97 +74,94 @@ fn_start_tmux(){
|
|
|
mv "${consolelog}" "${consolelogdate}"
|
|
|
fi
|
|
|
|
|
|
- # If server is already running exit
|
|
|
check_status.sh
|
|
|
if [ "${status}" != "0" ]; then
|
|
|
+ # If server is already running exit
|
|
|
fn_print_info_nl "${servername} is already running"
|
|
|
fn_script_log_error "${servername} is already running"
|
|
|
- core_exit.sh
|
|
|
- fi
|
|
|
-
|
|
|
- # Create lock file
|
|
|
- date > "${rootdir}/${lockselfname}"
|
|
|
- cd "${executabledir}"
|
|
|
- tmux new-session -d -s "${servicename}" "${executable} ${parms}" 2> "${scriptlogdir}/.${servicename}-tmux-error.tmp"
|
|
|
-
|
|
|
- # tmux pipe-pane not supported in tmux versions < 1.6
|
|
|
- if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -lt "16" ]; then
|
|
|
- echo "Console logging disabled: Tmux => 1.6 required" >> "${consolelog}"
|
|
|
- echo "https://gameservermanagers.com/tmux-upgrade" >> "${consolelog}"
|
|
|
- echo "Currently installed: $(tmux -V)" >> "${consolelog}"
|
|
|
-
|
|
|
- # Console logging disabled: Bug in tmux 1.8 breaks logging
|
|
|
- elif [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -eq "18" ]; then
|
|
|
- echo "Console logging disabled: Bug in tmux 1.8 breaks logging" >> "${consolelog}"
|
|
|
- echo "https://gameservermanagers.com/tmux-upgrade" >> "${consolelog}"
|
|
|
- echo "Currently installed: $(tmux -V)" >> "${consolelog}"
|
|
|
-
|
|
|
- # Console logging enable or not set
|
|
|
- elif [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
|
|
|
- touch "${consolelog}"
|
|
|
- tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
|
|
|
-
|
|
|
- # Console logging disabled
|
|
|
- elif [ "${consolelogging}" == "off" ]; then
|
|
|
- touch "${consolelog}"
|
|
|
- cat "Console logging disabled by user" >> "{consolelog}"
|
|
|
- fn_script_log_info "Console logging disabled by user"
|
|
|
- fi
|
|
|
- sleep 1
|
|
|
-
|
|
|
- # If the server fails to start
|
|
|
- check_status.sh
|
|
|
- if [ "${status}" == "0" ]; then
|
|
|
- fn_print_fail_nl "Unable to start ${servername}"
|
|
|
- fn_script_log_fatal "Unable to start ${servername}"
|
|
|
+ else
|
|
|
+ # Create lock file
|
|
|
+ date > "${rootdir}/${lockselfname}"
|
|
|
+
|
|
|
+ # Start session
|
|
|
+ cd "${executabledir}"
|
|
|
+ tmux new-session -d -s "${servicename}" "${executable} ${parms}" 2> "${scriptlogdir}/.${servicename}-tmux-error.tmp"
|
|
|
+
|
|
|
+ ## Console logging
|
|
|
+ # tmux pipe-pane not supported in tmux versions < 1.6
|
|
|
+ if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -lt "16" ]; then
|
|
|
+ echo "Console logging disabled: Tmux => 1.6 required" >> "${consolelog}"
|
|
|
+ echo "https://gameservermanagers.com/tmux-upgrade" >> "${consolelog}"
|
|
|
+ echo "Currently installed: $(tmux -V)" >> "${consolelog}"
|
|
|
+ # Console logging disabled: Bug in tmux 1.8 breaks logging
|
|
|
+ elif [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -eq "18" ]; then
|
|
|
+ echo "Console logging disabled: Bug in tmux 1.8 breaks logging" >> "${consolelog}"
|
|
|
+ echo "https://gameservermanagers.com/tmux-upgrade" >> "${consolelog}"
|
|
|
+ echo "Currently installed: $(tmux -V)" >> "${consolelog}"
|
|
|
+ # Console logging enable or not set
|
|
|
+ elif [ "${consolelogging}" == "on" ]||[ -z "${consolelogging}" ]; then
|
|
|
+ touch "${consolelog}"
|
|
|
+ tmux pipe-pane -o -t "${servicename}" "exec cat >> '${consolelog}'"
|
|
|
+ # Console logging disabled
|
|
|
+ elif [ "${consolelogging}" == "off" ]; then
|
|
|
+ touch "${consolelog}"
|
|
|
+ cat "Console logging disabled by user" >> "{consolelog}"
|
|
|
+ fn_script_log_info "Console logging disabled by user"
|
|
|
+ fi
|
|
|
sleep 1
|
|
|
- if [ -s "${scriptlogdir}/.${servicename}-tmux-error.tmp" ]; then
|
|
|
- fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
|
|
|
- fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
|
|
|
- echo ""
|
|
|
- echo "Command"
|
|
|
- echo "================================="
|
|
|
- echo "tmux new-session -d -s \"${servicename}\" \"${executable} ${parms}\"" | tee -a "${scriptlog}"
|
|
|
- echo ""
|
|
|
- echo "Error"
|
|
|
- echo "================================="
|
|
|
- cat "${scriptlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${scriptlog}"
|
|
|
|
|
|
- # Detected error https://gameservermanagers.com/issues
|
|
|
- if [ $(grep -c "Operation not permitted" "${scriptlogdir}/.${servicename}-tmux-error.tmp") ]; then
|
|
|
- echo ""
|
|
|
- echo "Fix"
|
|
|
- echo "================================="
|
|
|
- if [ ! $(grep "tty:" /etc/group|grep "$(whoami)") ]; then
|
|
|
- echo "$(whoami) is not part of the tty group."
|
|
|
- fn_script_log_info "$(whoami) is not part of the tty group."
|
|
|
- group=$(grep tty /etc/group)
|
|
|
- echo ""
|
|
|
- echo " ${group}"
|
|
|
- fn_script_log_info "${group}"
|
|
|
+ # Check if the server fails to start
|
|
|
+ check_status.sh
|
|
|
+ if [ "${status}" == "0" ]; then
|
|
|
+ fn_print_fail_nl "Unable to start ${servername}"
|
|
|
+ fn_script_log_fatal "Unable to start ${servername}"
|
|
|
+ sleep 1
|
|
|
+ if [ -s "${scriptlogdir}/.${servicename}-tmux-error.tmp" ]; then
|
|
|
+ fn_print_fail_nl "Unable to start ${servername}: Tmux error:"
|
|
|
+ fn_script_log_fatal "Unable to start ${servername}: Tmux error:"
|
|
|
+ echo ""
|
|
|
+ echo "Command"
|
|
|
+ echo "================================="
|
|
|
+ echo "tmux new-session -d -s \"${servicename}\" \"${executable} ${parms}\"" | tee -a "${scriptlog}"
|
|
|
+ echo ""
|
|
|
+ echo "Error"
|
|
|
+ echo "================================="
|
|
|
+ cat "${scriptlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${scriptlog}"
|
|
|
+
|
|
|
+ # Detected error https://gameservermanagers.com/issues
|
|
|
+ if [ $(grep -c "Operation not permitted" "${scriptlogdir}/.${servicename}-tmux-error.tmp") ]; then
|
|
|
echo ""
|
|
|
- echo "Run the following command with root privileges."
|
|
|
- echo ""
|
|
|
- echo " usermod -G tty $(whoami)"
|
|
|
- echo ""
|
|
|
- echo "https://gameservermanagers.com/tmux-op-perm"
|
|
|
- fn_script_log_info "https://gameservermanagers.com/tmux-op-perm"
|
|
|
- else
|
|
|
- echo "No known fix currently. Please log an issue."
|
|
|
- fn_script_log_info "No known fix currently. Please log an issue."
|
|
|
- echo "https://gameservermanagers.com/issues"
|
|
|
- fn_script_log_info "https://gameservermanagers.com/issues"
|
|
|
+ echo "Fix"
|
|
|
+ echo "================================="
|
|
|
+ if [ ! $(grep "tty:" /etc/group|grep "$(whoami)") ]; then
|
|
|
+ echo "$(whoami) is not part of the tty group."
|
|
|
+ fn_script_log_info "$(whoami) is not part of the tty group."
|
|
|
+ group=$(grep tty /etc/group)
|
|
|
+ echo ""
|
|
|
+ echo " ${group}"
|
|
|
+ fn_script_log_info "${group}"
|
|
|
+ echo ""
|
|
|
+ echo "Run the following command with root privileges."
|
|
|
+ echo ""
|
|
|
+ echo " usermod -G tty $(whoami)"
|
|
|
+ echo ""
|
|
|
+ echo "https://gameservermanagers.com/tmux-op-perm"
|
|
|
+ fn_script_log_info "https://gameservermanagers.com/tmux-op-perm"
|
|
|
+ else
|
|
|
+ echo "No known fix currently. Please log an issue."
|
|
|
+ fn_script_log_info "No known fix currently. Please log an issue."
|
|
|
+ echo "https://gameservermanagers.com/issues"
|
|
|
+ fn_script_log_info "https://gameservermanagers.com/issues"
|
|
|
+ fi
|
|
|
fi
|
|
|
fi
|
|
|
+ else
|
|
|
+ fn_print_ok "${servername}"
|
|
|
+ fn_script_log_pass "Started ${servername}"
|
|
|
fi
|
|
|
-
|
|
|
- core_exit.sh
|
|
|
- else
|
|
|
- fn_print_ok "${servername}"
|
|
|
- fn_script_log_pass "Started ${servername}"
|
|
|
+ rm "${scriptlogdir}/.${servicename}-tmux-error.tmp"
|
|
|
+ echo -en "\n"
|
|
|
fi
|
|
|
- rm "${scriptlogdir}/.${servicename}-tmux-error.tmp"
|
|
|
- echo -en "\n"
|
|
|
}
|
|
|
|
|
|
check.sh
|