diff --git a/src/Misc/layoutbin/update.sh.template b/src/Misc/layoutbin/update.sh.template index 2a6483ea0..8c9f508a0 100755 --- a/src/Misc/layoutbin/update.sh.template +++ b/src/Misc/layoutbin/update.sh.template @@ -30,13 +30,13 @@ date "+[%F %T-%4N] Waiting for $runnerprocessname ($runnerpid) to complete" >> " while [ -e /proc/$runnerpid ] do date "+[%F %T-%4N] Process $runnerpid still running" >> "$logfile" 2>&1 - sleep 2 + "$rootfolder"/safe_sleep.sh 2 done date "+[%F %T-%4N] Process $runnerpid finished running" >> "$logfile" 2>&1 # start re-organize folders date "+[%F %T-%4N] Sleep 1 more second to make sure process exited" >> "$logfile" 2>&1 -sleep 1 +"$rootfolder"/safe_sleep.sh 1 # the folder structure under runner root will be # ./bin -> bin.2.100.0 (junction folder) diff --git a/src/Misc/layoutroot/run-helper.sh.template b/src/Misc/layoutroot/run-helper.sh.template index 5d8d1de9e..831ae3a3f 100755 --- a/src/Misc/layoutroot/run-helper.sh.template +++ b/src/Misc/layoutroot/run-helper.sh.template @@ -10,22 +10,6 @@ fi # Run shopt -s nocasematch -safe_sleep() { - if [ ! -x "$(command -v sleep)" ]; then - if [ ! -x "$(command -v ping)" ]; then - COUNT="0" - while [[ $COUNT != 5000 ]]; do - echo "SLEEP" > /dev/null - COUNT=$[$COUNT+1] - done - else - ping -c 5 127.0.0.1 > /dev/null - fi - else - sleep 5 - fi -} - SOURCE="${BASH_SOURCE[0]}" while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" @@ -44,17 +28,17 @@ elif [[ $returnCode == 1 ]]; then exit 0 elif [[ $returnCode == 2 ]]; then echo "Runner listener exit with retryable error, re-launch runner in 5 seconds." - safe_sleep + "$DIR"/safe_sleep.sh 5 exit 2 elif [[ $returnCode == 3 ]]; then # Sleep 5 seconds to wait for the runner update process finish echo "Runner listener exit because of updating, re-launch runner in 5 seconds" - safe_sleep + "$DIR"/safe_sleep.sh 5 exit 2 elif [[ $returnCode == 4 ]]; then # Sleep 5 seconds to wait for the ephemeral runner update process finish echo "Runner listener exit because of updating, re-launch ephemeral runner in 5 seconds" - safe_sleep + "$DIR"/safe_sleep.sh 5 exit 2 else echo "Exiting with unknown error code: ${returnCode}" diff --git a/src/Misc/layoutroot/safe_sleep.sh b/src/Misc/layoutroot/safe_sleep.sh new file mode 100644 index 000000000..7ba5be325 --- /dev/null +++ b/src/Misc/layoutroot/safe_sleep.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +SECONDS=0 +while [[ $SECONDS != $1 ]]; do + : +done diff --git a/src/dev.sh b/src/dev.sh index 12854fa01..e7b075ca5 100755 --- a/src/dev.sh +++ b/src/dev.sh @@ -128,6 +128,7 @@ function layout () chmod +x "${LAYOUT_DIR}/bin/Runner.Worker" chmod +x "${LAYOUT_DIR}/bin/Runner.PluginHost" chmod +x "${LAYOUT_DIR}/bin/installdependencies.sh" + chmod +x "${LAYOUT_DIR}/safe_sleep.sh" fi heading "Setup externals folder for $RUNTIME_ID runner's layout"