From bdeb7fe907e05544675a07ebb035ebb64f4424e3 Mon Sep 17 00:00:00 2001 From: deajan Date: Mon, 1 Aug 2016 12:48:01 +0200 Subject: [PATCH] Re-rebuild for v1.1.1 --- dev/debug_osync.sh | 91 +++------------------------------------------- osync.sh | 89 +++------------------------------------------ 2 files changed, 11 insertions(+), 169 deletions(-) diff --git a/dev/debug_osync.sh b/dev/debug_osync.sh index e5797e0..1a1e22d 100755 --- a/dev/debug_osync.sh +++ b/dev/debug_osync.sh @@ -7,7 +7,7 @@ PROGRAM_VERSION=1.1.1 PROGRAM_BUILD=2016080104 IS_STABLE=yes -## FUNC_BUILD=2016072703 +## FUNC_BUILD=2016071902 ## BEGIN Generic functions for osync & obackup written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr ## type -p does not work on platforms other than linux (bash). If if does not work, always assume output is not a zero exitcode @@ -47,7 +47,7 @@ fi #__WITH_PARANOIA_DEBUG ## allow debugging from command line with _DEBUG=yes if [ ! "$_DEBUG" == "yes" ]; then _DEBUG=no - SLEEP_TIME=.001 # Tested under linux and FreeBSD bash, #TODO tests on cygwin / msys + SLEEP_TIME=.1 _VERBOSE=0 else SLEEP_TIME=1 @@ -729,41 +729,13 @@ function GetRemoteOS { fi } -function WaitForPids { - # Takes a list of pids separated by space as argument, and waits until all pids are finished - local errors=0 - - while [ "$#" -gt 0 ]; do - for pid in "$@"; do - shift - if kill -0 "$pid" > /dev/null 2>&1; then - Logger "[$pid] is alive." "DEBUG" - set -- "$@" "$pid" - else - wait "$pid" - result=$? - if [ $result -eq 0 ]; then - Logger "[$pid] exited okay with [$result]" "DEBUG" - else - errors=$((errors+1)) - Logger "[$pid] exited with bad status [$result]." "WARN" - fi - fi - done - sleep $SLEEP_TIME - done - return $errors -} - - function WaitForTaskCompletion { - local pids="${1}" # list of pids to wait for, separated by a semicolon + local pid="${1}" # pid to wait for local soft_max_time="${2}" # If program with pid $pid takes longer than $soft_max_time seconds, will log a warning, unless $soft_max_time equals 0. local hard_max_time="${3}" # If program with pid $pid takes longer than $hard_max_time seconds, will stop execution, unless $hard_max_time equals 0. local caller_name="${4}" # Who called this function - local should_exit="${5}" # If true, the function exits on failure Logger "${FUNCNAME[0]} called by [$caller_name]." "PARANOIA_DEBUG" #__WITH_PARANOIA_DEBUG - #__CheckArguments 4 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG + __CheckArguments 4 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG local soft_alert=0 # Does a soft alert need to be triggered, if yes, send an alert once local log_ttime=0 # local time instance for comparaison @@ -773,56 +745,7 @@ function WaitForTaskCompletion { local retval=0 # return value of monitored pid process - local pid - local new_pids - local result - - IFS=';' read -r -a pidarray <<< "$pids" - - while [ ${#pidarray[@]} -gt 0 ]; do - newarray="" - for index in ${!pidarray[@]}; do - pid="${pidarray[index]}" - echo "run for $pid" - if kill -0 $pid > /dev/null 2>&1; then - echo "pid [$pid] is running." - newarray+=$pid - else - wait "$pid" - result=$? - echo $result - if [ $result -eq 0 ]; then - echo "pid [$pid] is finished with exit code 0." - else - echo "pid [$pid] is finished with exit code $result." - fi - fi - done - pidarray=$newarray - sleep .05 - done -} - -sleep 1 & -pids=$! -sleep 5 & -pids="$pids;$!" -echo "Waiting for pid $pids" -#sleep 5 & -#pids="$pids;$!" - -WaitForTaskCompletion $pids 0 0 "caller" 1 - -echo "done" -exit - -function old { - - - - - #TODO: test on FreeBSD, MacOS X and msys / cygwin - while kill -0 "$pid" > /dev/null 2>&1 + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner exec_time=$(($SECONDS - $seconds_begin)) @@ -874,8 +797,7 @@ function WaitForCompletion { local retval=0 # return value of monitored pid process - #TODO: test on FreeBSD, MacOS X and msys / cygwin - while kill -0 "$pid" > /dev/null 2>&1 + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner if [ $((($SECONDS + 1) % $KEEP_LOGGING)) -eq 0 ]; then @@ -1289,7 +1211,6 @@ function InitLocalOSSettings { FIND_CMD=$(dirname $BASH)/find # PROCESS_TEST_CMD assumes there is a variable $pid # Tested on MSYS and cygwin - #TODO: remove PROCESS_TEST_CMD if kill -0 works PROCESS_TEST_CMD='ps -a | awk "{\$1=\$1}\$1" | awk "{print \$1}" | grep $pid' PING_CMD='$SYSTEMROOT\system32\ping -n 2' else diff --git a/osync.sh b/osync.sh index 19c9552..8d2825d 100755 --- a/osync.sh +++ b/osync.sh @@ -7,7 +7,7 @@ PROGRAM_VERSION=1.1.1 PROGRAM_BUILD=2016080104 IS_STABLE=yes -## FUNC_BUILD=2016072703 +## FUNC_BUILD=2016071902 ## BEGIN Generic functions for osync & obackup written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr ## type -p does not work on platforms other than linux (bash). If if does not work, always assume output is not a zero exitcode @@ -43,7 +43,7 @@ WARN_ALERT=0 ## allow debugging from command line with _DEBUG=yes if [ ! "$_DEBUG" == "yes" ]; then _DEBUG=no - SLEEP_TIME=.001 # Tested under linux and FreeBSD bash, #TODO tests on cygwin / msys + SLEEP_TIME=.1 _VERBOSE=0 else SLEEP_TIME=1 @@ -712,39 +712,11 @@ function GetRemoteOS { fi } -function WaitForPids { - # Takes a list of pids separated by space as argument, and waits until all pids are finished - local errors=0 - - while [ "$#" -gt 0 ]; do - for pid in "$@"; do - shift - if kill -0 "$pid" > /dev/null 2>&1; then - Logger "[$pid] is alive." "DEBUG" - set -- "$@" "$pid" - else - wait "$pid" - result=$? - if [ $result -eq 0 ]; then - Logger "[$pid] exited okay with [$result]" "DEBUG" - else - errors=$((errors+1)) - Logger "[$pid] exited with bad status [$result]." "WARN" - fi - fi - done - sleep $SLEEP_TIME - done - return $errors -} - - function WaitForTaskCompletion { - local pids="${1}" # list of pids to wait for, separated by a semicolon + local pid="${1}" # pid to wait for local soft_max_time="${2}" # If program with pid $pid takes longer than $soft_max_time seconds, will log a warning, unless $soft_max_time equals 0. local hard_max_time="${3}" # If program with pid $pid takes longer than $hard_max_time seconds, will stop execution, unless $hard_max_time equals 0. local caller_name="${4}" # Who called this function - local should_exit="${5}" # If true, the function exits on failure local soft_alert=0 # Does a soft alert need to be triggered, if yes, send an alert once local log_ttime=0 # local time instance for comparaison @@ -754,56 +726,7 @@ function WaitForTaskCompletion { local retval=0 # return value of monitored pid process - local pid - local new_pids - local result - - IFS=';' read -r -a pidarray <<< "$pids" - - while [ ${#pidarray[@]} -gt 0 ]; do - newarray="" - for index in ${!pidarray[@]}; do - pid="${pidarray[index]}" - echo "run for $pid" - if kill -0 $pid > /dev/null 2>&1; then - echo "pid [$pid] is running." - newarray+=$pid - else - wait "$pid" - result=$? - echo $result - if [ $result -eq 0 ]; then - echo "pid [$pid] is finished with exit code 0." - else - echo "pid [$pid] is finished with exit code $result." - fi - fi - done - pidarray=$newarray - sleep .05 - done -} - -sleep 1 & -pids=$! -sleep 5 & -pids="$pids;$!" -echo "Waiting for pid $pids" -#sleep 5 & -#pids="$pids;$!" - -WaitForTaskCompletion $pids 0 0 "caller" 1 - -echo "done" -exit - -function old { - - - - - #TODO: test on FreeBSD, MacOS X and msys / cygwin - while kill -0 "$pid" > /dev/null 2>&1 + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner exec_time=$(($SECONDS - $seconds_begin)) @@ -852,8 +775,7 @@ function WaitForCompletion { local retval=0 # return value of monitored pid process - #TODO: test on FreeBSD, MacOS X and msys / cygwin - while kill -0 "$pid" > /dev/null 2>&1 + while eval "$PROCESS_TEST_CMD" > /dev/null do Spinner if [ $((($SECONDS + 1) % $KEEP_LOGGING)) -eq 0 ]; then @@ -1216,7 +1138,6 @@ function InitLocalOSSettings { FIND_CMD=$(dirname $BASH)/find # PROCESS_TEST_CMD assumes there is a variable $pid # Tested on MSYS and cygwin - #TODO: remove PROCESS_TEST_CMD if kill -0 works PROCESS_TEST_CMD='ps -a | awk "{\$1=\$1}\$1" | awk "{print \$1}" | grep $pid' PING_CMD='$SYSTEMROOT\system32\ping -n 2' else