diff --git a/dev/debug_osync.sh b/dev/debug_osync.sh index 95585cc..a812d49 100755 --- a/dev/debug_osync.sh +++ b/dev/debug_osync.sh @@ -7,7 +7,7 @@ PROGRAM_VERSION=1.1-pre PROGRAM_BUILD=2016040701 IS_STABLE=yes -## FUNC_BUILD=2016041001 +## FUNC_BUILD=2016041202 ## 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 @@ -156,23 +156,28 @@ function KillChilds { if children="$(pgrep -P "$pid")"; then for child in $children; do - Logger "Launching KillChilds \"$child\" true" "DEBUG" + Logger "Launching KillChilds \"$child\" true" "DEBUG" #__WITH_PARANOIA_DEBUG KillChilds "$child" true done fi # Try to kill nicely, if not, wait 15 seconds to let Trap actions happen before killing - if [ "$self" == true ]; then - Logger "Killing process $pid" "DEBUG" + if ( [ "$self" == true ] && eval $PROCESS_TEST_CMD > /dev/null 2>&1); then + Logger "Sending SIGTERM to process [$pid]." "DEBUG" kill -s SIGTERM "$pid" if [ $? != 0 ]; then - sleep 15 && kill -9 "$pid" & - return 1 - else - return 0 + sleep 15 + Logger "Sending SIGTERM to process [$pid] failed." "DEBUG" + kill -9 "$pid" + if [ $? != 0 ]; then + Logger "Sending SIGKILL to process [$pid] failed." "DEBUG" + return 1 + fi fi + return 0 + else + return 0 fi - # sleep 15 needs to wait before killing itself } function SendAlert { diff --git a/dev/ofunctions.sh b/dev/ofunctions.sh index 8d375a4..dcbee15 100644 --- a/dev/ofunctions.sh +++ b/dev/ofunctions.sh @@ -1,4 +1,4 @@ -## FUNC_BUILD=2016041001 +## FUNC_BUILD=2016041202 ## 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 @@ -147,23 +147,28 @@ function KillChilds { if children="$(pgrep -P "$pid")"; then for child in $children; do - Logger "Launching KillChilds \"$child\" true" "DEBUG" + Logger "Launching KillChilds \"$child\" true" "DEBUG" #__WITH_PARANOIA_DEBUG KillChilds "$child" true done fi # Try to kill nicely, if not, wait 15 seconds to let Trap actions happen before killing - if [ "$self" == true ]; then - Logger "Killing process $pid" "DEBUG" + if ( [ "$self" == true ] && eval $PROCESS_TEST_CMD > /dev/null 2>&1); then + Logger "Sending SIGTERM to process [$pid]." "DEBUG" kill -s SIGTERM "$pid" if [ $? != 0 ]; then - sleep 15 && kill -9 "$pid" & - return 1 - else - return 0 + sleep 15 + Logger "Sending SIGTERM to process [$pid] failed." "DEBUG" + kill -9 "$pid" + if [ $? != 0 ]; then + Logger "Sending SIGKILL to process [$pid] failed." "DEBUG" + return 1 + fi fi + return 0 + else + return 0 fi - # sleep 15 needs to wait before killing itself } function SendAlert { diff --git a/osync.sh b/osync.sh index 839184d..43c8d15 100755 --- a/osync.sh +++ b/osync.sh @@ -7,7 +7,7 @@ PROGRAM_VERSION=1.1-pre PROGRAM_BUILD=2016040701 IS_STABLE=yes -## FUNC_BUILD=2016041001 +## FUNC_BUILD=2016041202 ## 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 @@ -146,23 +146,27 @@ function KillChilds { if children="$(pgrep -P "$pid")"; then for child in $children; do - Logger "Launching KillChilds \"$child\" true" "DEBUG" KillChilds "$child" true done fi # Try to kill nicely, if not, wait 15 seconds to let Trap actions happen before killing - if [ "$self" == true ]; then - Logger "Killing process $pid" "DEBUG" + if ( [ "$self" == true ] && eval $PROCESS_TEST_CMD > /dev/null 2>&1); then + Logger "Sending SIGTERM to process [$pid]." "DEBUG" kill -s SIGTERM "$pid" if [ $? != 0 ]; then - sleep 15 && kill -9 "$pid" & - return 1 - else - return 0 + sleep 15 + Logger "Sending SIGTERM to process [$pid] failed." "DEBUG" + kill -9 "$pid" + if [ $? != 0 ]; then + Logger "Sending SIGKILL to process [$pid] failed." "DEBUG" + return 1 + fi fi + return 0 + else + return 0 fi - # sleep 15 needs to wait before killing itself } function SendAlert {