From 9e29fa5a9fd12606e7cd0be4cfbc83cb6c52231b Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Mon, 20 Apr 2015 09:46:56 +0100 Subject: [PATCH] Added adjustments to script messages * tmux will be killed just after sdtd telnet finishes --- functions/fn_stop | 71 ++++++++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 32 deletions(-) diff --git a/functions/fn_stop b/functions/fn_stop index 04046ce3f..653841148 100644 --- a/functions/fn_stop +++ b/functions/fn_stop @@ -39,40 +39,47 @@ sleep 1 fn_check_tmux if [ "${gamename}" == "7 Days To Die" ] ; then - # if game is 7 Days To Die, we need special, graceful shutdown via telnet connection. - # Set below variable to be called for expect to operate correctly.. - - sdtdshutdown=$( expect -c ' - proc abort {} { - puts "Timeout or EOF\n" - exit 1 - } - spawn telnet '"${telnetip}"' '"${telnetport}"' - expect { - "password:" { send "'"${telnetpass}"'\r" } - default abort - } - expect { - "session." { send "shutdown\r" } - default abort - } - expect { eof } - puts "Completed.\n" - ') - echo -en "\n ${sdtdshutdown}" - fn_printok "${servername}" - fn_scriptlog "Performmed graceful shutdown of ${servername}" + # if game is 7 Days To Die, we need special, graceful shutdown via telnet connection. + # Set below variable to be called for expect to operate correctly.. + fn_printdots "Attempting graceful shutdown via telnet" + fn_scriptlog "Attempting graceful shutdown via telnet" + sleep 1 + telnetip=127.0.0.1 + sdtdshutdown=$( expect -c ' + proc abort {} { + puts "Timeout or EOF\n" + exit 1 + } + spawn telnet '"${telnetip}"' '"${telnetport}"' + expect { + "password:" { send "'"${telnetpass}"'\r" } + default abort + } + expect { + "session." { send "shutdown\r" } + default abort + } + expect { eof } + puts "Completed.\n" + ') + echo -en "\n ${sdtdshutdown}" + fn_printok "Attempting graceful shutdown via telnet" + fn_scriptlog "Attempting graceful shutdown succeeded" + sleep 1 + fn_printdots "${servername}" + fn_scriptlog "${servername}" + sleep 1 +fi +pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -Ec "^${servicename}:") +if [ "${pid}" == "0" ]; then + fn_printfail "${servername} is already stopped" + fn_scriptlog "${servername} is already stopped" else - pid=$(tmux list-sessions 2>&1|awk '{print $1}'|grep -Ec "^${servicename}:") - if [ "${pid}" == "0" ]; then - fn_printfail "${servername} is already stopped" - fn_scriptlog "${servername} is already stopped" - else - tmux kill-session -t ${servicename} - fn_printok "${servername}" - fn_scriptlog "Stopped ${servername}" - fi + tmux kill-session -t ${servicename} + fn_printok "${servername}" + fn_scriptlog "Stopped ${servername}" fi +} if [ "${gamename}" == "Teamspeak 3" ]; then fn_stop_teamspeak3