From 15529b9b16d43e5b1e40c10e670479d962ad0979 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Mon, 8 Aug 2016 18:32:12 +0100 Subject: [PATCH] fn_stop_graceful_minecraft --- lgsm/functions/command_stop.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh index 572225c18..b89330511 100644 --- a/lgsm/functions/command_stop.sh +++ b/lgsm/functions/command_stop.sh @@ -144,6 +144,34 @@ fn_stop_graceful_sdtd(){ fn_stop_tmux } +# Attempts Graceful of source using rcon '/stop' command. +fn_stop_graceful_minecraft(){ + fn_print_dots "Graceful: rcon quit" + fn_script_log_info "Graceful: rcon quit" + # sends quit + tmux send -t "${servicename}" /stop ENTER > /dev/null 2>&1 + # waits up to 30 seconds giving the server time to shutdown gracefuly + for seconds in {1..30}; do + check_status.sh + if [ "${status}" == "0" ]; then + fn_print_ok "Graceful: rcon quit: ${seconds}: " + fn_print_ok_eol_nl + fn_script_log_pass "Graceful: rcon quit: OK: ${seconds} seconds" + break + fi + sleep 1 + fn_print_dots "Graceful: rcon quit: ${seconds}" + done + check_status.sh + if [ "${status}" != "0" ]; then + fn_print_error "Graceful: rcon quit: " + fn_print_fail_eol_nl + fn_script_log_error "Graceful: rcon quit: FAIL" + fi + sleep 1 + fn_stop_tmux +} + fn_stop_graceful_select(){ if [ "${gamename}" == "7 Days To Die" ]; then fn_stop_graceful_sdtd @@ -151,6 +179,8 @@ fn_stop_graceful_select(){ fn_stop_graceful_source elif [ "${engine}" == "goldsource" ]; then fn_stop_graceful_goldsource + elif [ "${engine}" == "minecraft" ]; then + fn_stop_graceful_minecraft else fn_stop_tmux fi