|
|
@ -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 |
|
|
|