From d0474e223bb877bb3f33df2befc095e082b918d0 Mon Sep 17 00:00:00 2001 From: Christian Heller Date: Sat, 5 Mar 2016 14:57:49 +0100 Subject: [PATCH] Minor tweaks to enhance cleaning up and responsibility of start scripts. --- roguelike | 2 ++ start_server_client_union.sh | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/roguelike b/roguelike index b002721..cad9b70 100755 --- a/roguelike +++ b/roguelike @@ -1,7 +1,9 @@ #!/bin/sh # Wrapper to the script so that its suppressed server messages get read on exit. +# and server_run/ get's deleted in any case. ./start_server_client_union.sh "$@" +rm -rf ./server_run/ # For some reason, mere sync won't ensure a log is written out, so wait a while. sync diff --git a/start_server_client_union.sh b/start_server_client_union.sh index f6c194f..a6fe32a 100755 --- a/start_server_client_union.sh +++ b/start_server_client_union.sh @@ -3,6 +3,9 @@ # Abort the script on error. set -e +# Run script in its own process group so SIGINT doesn't kill parent script. +set -m + # Don't let any log leftovers from before interfere. if [ -e ./log ] then @@ -30,7 +33,7 @@ fi python3 ./roguelike-server "$@" > log 2>&1 & # Give server some time to start up and exit on error. -sleep 0.01 +sleep 0.1 # The client should not start if the server is not running. (If the server was # running in the foreground, any error exit of it so far would be caught by "set @@ -39,14 +42,19 @@ kill -0 $! 2> /dev/null # Give server some time (max. 10 seconds) to generate its worldstate file. i=0 -while [ ! -e server_run/worldstate ] && [ $i -le 1000 ] +echo -n "Waiting for server to set up world: " +while [ ! -e server_run/worldstate ] && [ $i -le 100 ] do - sleep 0.01 + echo -n '.' + sleep 0.1 i=`expr $i + 1` done +echo if [ ! -e server_run/worldstate ] then - echo "Server failed generating worldstate file within given time limit." + kill -9 $! + rm -rf server_run + echo "Server failed generating worldstate file within time limit." false fi -- 2.30.2