From f3ff1621629b322496dc2aefe43ade4085c05afa Mon Sep 17 00:00:00 2001 From: Mitch Weaver Date: Sun, 26 Nov 2023 00:48:08 -0600 Subject: [PATCH 1/5] asdf --- lib/globals.sh | 13 ++++++++++++- server_start.sh | 43 +++++++++++++++++++------------------------ 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/lib/globals.sh b/lib/globals.sh index ff09436..f355c29 100644 --- a/lib/globals.sh +++ b/lib/globals.sh @@ -148,9 +148,20 @@ lock_remote_server() { die "Could not create: $REMOTE_SERVER_LOCKFILE" fi } - unlock_remote_server() { msg "Unlocking remote server." rm -f "$REMOTE_SERVER_LOCKFILE" || die "Could not remove: $REMOTE_SERVER_LOCKFILE" } +wait_until_remote_server_unlocked() { + # wait until dayz-modserver lockfile is released on the NAS + if islocked_remote_server ; then + msg "Remote file server is currently locked" + msg "Sleeping until is no longer locked..." + while islocked_remote_server ; do + echo "Sleeping..." + sleep 10 + done + msg "Server unlocked! Continuing..." + fi +} # ===================================================================================== diff --git a/server_start.sh b/server_start.sh index c103608..9392350 100644 --- a/server_start.sh +++ b/server_start.sh @@ -49,7 +49,9 @@ export SERVERS="$LOCAL_DAYZ_FILES/servers" ################################# export RESTART_INTERVAL=$((60 * 60 * 4)) # (10 minutes) -export RESTART_INTERVAL=$((10 * 60)) +# export RESTART_INTERVAL=$((10 * 60)) + +export RESTART_INTERVAL=$((1 * 60)) # =================================================== # 03. Mount network drive @@ -145,6 +147,7 @@ refresh_local_cache() { } setup_environment() { + msg "Setting up environment" msg "Copying stock server data from local cache into $SERVER_HOME" # list of all stock server folders for folder in addons battleye bliss docs dta keys ; do @@ -170,6 +173,7 @@ setup_environment() { # finds list of mods to load and stores them in .modstring file # to be used as parameters to the server load_mods() { + msg "Loading mods" if [ ! -f "$MOD_CACHE/$MAP_FOLDER_NAME/mods.txt" ] ; then die "mods.txt list for $MAP_FOLDER_NAME is missing" fi @@ -209,7 +213,6 @@ load_mods() { # trim the initial leading ';' _modstring=${_modstring#;} printf '%s\n' "$_modstring" > .modstring - unset _modstring msg "Mods successfully loaded. Using modstring:" printf '"%s"\n' "$(cat .modstring)" @@ -220,32 +223,25 @@ load_mods() { # =================================================== start_server() { check || die "Failed check()" - - # wait until dayz-modserver lockfile is released on the NAS - if islocked_remote_server ; then - msg "Remote file server is currently locked" - msg "Sleeping until is no longer locked..." - while islocked_remote_server ; do - echo "Sleeping..." - sleep 10 - done - msg "Server unlocked! Continuing..." - fi - cd "$SERVER_HOME" || die "Could not cd to '$SERVER_HOME'" - msg "Setting up environment" + wait_until_remote_server_unlocked setup_environment || die "Could not set up environment." - - msg "Loading mods" load_mods || die "Could not load mods" - mod_string=$(cat .modstring) # ===================================================================================== # creating temp.bat here to avoid the arg max char limit of windows cmd.exe +PROCESS_NAME="SERVER: $SERVER_NAME" cat > temp.bat </dev/null ||: msg "Sleeping 10 seconds to settle" sleep 10 msg "SERVER IS RESTARTING" - } # =================================================== From a2cb09a7065ce018c55758e1acb24822da79c7f2 Mon Sep 17 00:00:00 2001 From: Mitch Weaver Date: Sun, 26 Nov 2023 00:50:50 -0600 Subject: [PATCH 2/5] adsf --- server_start.sh | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/server_start.sh b/server_start.sh index 9392350..c8c1e8b 100644 --- a/server_start.sh +++ b/server_start.sh @@ -212,10 +212,8 @@ load_mods() { # trim the initial leading ';' _modstring=${_modstring#;} - printf '%s\n' "$_modstring" > .modstring - - msg "Mods successfully loaded. Using modstring:" - printf '"%s"\n' "$(cat .modstring)" + printf '%s\n' "$_modstring" > modstring + msg "Mods successfully loaded." } # =================================================== @@ -239,7 +237,7 @@ start "$PROCESS_NAME" ^ -config=serverDZ.cfg ^ -port="$SERVER_PORT" ^ -profiles=Profilesfolder ^ - -mod="$(cat .mod_string)" ^ + -mod="$(cat modstring)" ^ -cpuCount="$SERVER_CPU" ^ -dologs -adminlog -netlog -freezecheck EOF @@ -266,7 +264,7 @@ EOF # TODO: need to change this to be title of the cmd else it will kill all servers cmd.exe /C taskkill /IM /FI "$PROCESS_NAME" ###### cmd.exe /C taskkill /im DayZServer_x64.exe /F - rm -f temp.bat 2>/dev/null ||: + rm -f temp.bat modstring 2>/dev/null ||: msg "Sleeping 10 seconds to settle" sleep 10 From 89dc477d56df58d6f7c49aa58e358ac369516f47 Mon Sep 17 00:00:00 2001 From: Mitch Weaver Date: Sun, 26 Nov 2023 00:57:48 -0600 Subject: [PATCH 3/5] adsf --- server_start.sh | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/server_start.sh b/server_start.sh index c8c1e8b..d1a98c7 100644 --- a/server_start.sh +++ b/server_start.sh @@ -245,12 +245,9 @@ EOF # start the server cmd.exe /C temp.bat + rm -f temp.bat modstring 2>/dev/null ||: - echo '====================================' - printf '%s - Server started.\n' "$(date)" - echo '====================================' - - printf '\n**** Sleeping for: %s *****\n\n' "$RESTART_INTERVAL" + msg '%s - Server started.\n' "$(date)" count=0 while [ "$count" -lt "$RESTART_INTERVAL" ] ; do @@ -261,10 +258,7 @@ EOF echo "===========================" msg "Time up - Killing server" - # TODO: need to change this to be title of the cmd else it will kill all servers - cmd.exe /C taskkill /IM /FI "$PROCESS_NAME" - ###### cmd.exe /C taskkill /im DayZServer_x64.exe /F - rm -f temp.bat modstring 2>/dev/null ||: + cmd.exe /C taskkill /FI "WINDOWTITLE eq $PROCESS_NAME" msg "Sleeping 10 seconds to settle" sleep 10 From 457f8d7618ad68908d98b10e250d378802b62b57 Mon Sep 17 00:00:00 2001 From: Mitch Weaver Date: Sun, 26 Nov 2023 01:06:54 -0600 Subject: [PATCH 4/5] adsf --- server_start.sh | 48 +++++++++++------------------------------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/server_start.sh b/server_start.sh index d1a98c7..832b119 100644 --- a/server_start.sh +++ b/server_start.sh @@ -101,48 +101,21 @@ load_stock_map_data() { refresh_local_cache() { msg "Refreshing local stock server cache" - if ! islocked_remote_server ; then - do_sync "$REMOTE_STOCK_SERVER"/ "$STOCK_SERVER_CACHE" || die "Failed to copy remote stock server data to local cache" - else - msg "Remote server is locked, sleeping..." - while islocked_remote_server ; do - sleep 15 - echo 'Sleeping...' - done - do_sync "$REMOTE_STOCK_SERVER"/ "$STOCK_SERVER_CACHE" || die "Failed to copy remote stock server data to local cache" - fi + wait_until_remote_server_unlocked + do_sync "$REMOTE_STOCK_SERVER"/ "$STOCK_SERVER_CACHE" || \ + die "Failed to copy remote stock server data to local cache" msg "Sucessfully copied stock server data into local cache" - # ------------------------------------- - msg "Refreshing local map data cache for: $MAP_FOLDER_NAME" - if ! islocked_remote_server ; then - do_sync "$REMOTE_MAPS/$MAP_FOLDER_NAME"/ "$LOCAL_DAYZ_FILES/stock/maps/$MAP_FOLDER_NAME" || \ + wait_until_remote_server_unlocked + do_sync "$REMOTE_MAPS/$MAP_FOLDER_NAME"/ "$LOCAL_DAYZ_FILES/stock/maps/$MAP_FOLDER_NAME" || \ die "Failed to copy remote stock map data for: $MAP_FOLDER_NAME" - else - msg "Remote server is locked, sleeping..." - while islocked_remote_server ; do - sleep 15 - echo 'Sleeping...' - done - do_sync "$REMOTE_MAPS/$MAP_FOLDER_NAME"/ "$LOCAL_DAYZ_FILES/stock/maps/$MAP_FOLDER_NAME" || \ - die "Failed to copy remote stock map data for: $MAP_FOLDER_NAME" - fi msg "Successfully copied stock map data for: $MAP_FOLDER_NAME" - # ------------------------------------- - msg "Refreshing local mods cache" - if ! islocked_remote_server ; then - do_sync "$REMOTE_MODS"/ "$MOD_CACHE" || die "Failed to copy remote mods to local cache" - else - msg "Remote server is locked, sleeping..." - while islocked_remote_server ; do - sleep 15 - echo 'Sleeping...' - done - do_sync "$REMOTE_MODS"/ "$MOD_CACHE" || die "Failed to copy remote mods to local cache" - fi + wait_until_remote_server_unlocked + do_sync "$REMOTE_MODS"/ "$MOD_CACHE" || \ + die "Failed to copy remote mods to local cache" msg "Successfully copied remote mods into local cache" } @@ -167,7 +140,9 @@ setup_environment() { do_sync "$MOD_CACHE/$MAP_FOLDER_NAME"/ "$SERVER_HOME/mods" || die "Failed to copy mods to $SERVER_HOME" msg "Copying DZSA executable" - do_sync "$REMOTE_DIR/res/software/DZSALModServer.exe" "$SERVER_HOME"/ || die "Failed to copy DZSALModServer.exe" + wait_until_remote_server_unlocked + do_sync "$REMOTE_DIR/res/software/DZSALModServer.exe" "$SERVER_HOME"/ || \ + die "Failed to copy DZSALModServer.exe" } # finds list of mods to load and stores them in .modstring file @@ -256,7 +231,6 @@ EOF msg "TIME LEFT BEFORE RESTART: $(( (RESTART_INTERVAL - count) / 60 )) minutes" done - echo "===========================" msg "Time up - Killing server" cmd.exe /C taskkill /FI "WINDOWTITLE eq $PROCESS_NAME" From 51f9571b8c2a011329d5053927ca75bac35b702b Mon Sep 17 00:00:00 2001 From: Mitch Weaver Date: Sun, 26 Nov 2023 01:14:29 -0600 Subject: [PATCH 5/5] asdf --- server_start.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/server_start.sh b/server_start.sh index 832b119..e0fe4e8 100644 --- a/server_start.sh +++ b/server_start.sh @@ -80,7 +80,7 @@ check() { init_server() { mkdir -p "$SERVER_HOME" "$CACHE" "$MOD_CACHE" "$STOCK_SERVER_CACHE" "$LOCAL_DAYZ_FILES/stock/maps/$MAP_FOLDER_NAME" - :>"$SERVER_HOME/.modstring" + :>"$SERVER_HOME/modstring" check || die "Failed check()" @@ -145,7 +145,7 @@ setup_environment() { die "Failed to copy DZSALModServer.exe" } -# finds list of mods to load and stores them in .modstring file +# finds list of mods to load and stores them in modstring file # to be used as parameters to the server load_mods() { msg "Loading mods" @@ -254,8 +254,7 @@ main() { # this must be here and not up top as we must load it from the SERVER.ENV export SERVER_HOME="$SERVERS/$SERVER_NAME" - # create directories in $SERVER_HOME - # blank the modstring + # create directories in $SERVER_HOME, blank the modstring init_server if [ -e ./serverDZ.cfg ] ; then