From 192e1d2f657283facf0b6fbe1e058be6c24b775b Mon Sep 17 00:00:00 2001 From: deajan Date: Thu, 3 Mar 2016 16:06:27 +0100 Subject: [PATCH] Added instance run check. --- dev/debug_obackup.sh | 21 ++++++++++++++++++++- dev/n_obackup.sh | 21 ++++++++++++++++++++- obackup.sh | 20 +++++++++++++++++++- 3 files changed, 59 insertions(+), 3 deletions(-) diff --git a/dev/debug_obackup.sh b/dev/debug_obackup.sh index 2be7dfe..a37eead 100755 --- a/dev/debug_obackup.sh +++ b/dev/debug_obackup.sh @@ -5,7 +5,7 @@ PROGRAM="obackup" AUTHOR="(L) 2013-2016 by Orsiris de Jong" CONTACT="http://www.netpower.fr/obackup - ozy@netpower.fr" PROGRAM_VERSION=2.0-pre -PROGRAM_BUILD=2016030102 +PROGRAM_BUILD=2016030301 IS_STABLE=no ## FUNC_BUILD=2016021803 @@ -1019,6 +1019,10 @@ function TrapQuit { exitcode=0 fi + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + rm -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" + fi + KillChilds $$ > /dev/null 2>&1 exit $exitcode } @@ -1096,6 +1100,20 @@ function CheckCurrentConfig { #TODO-v2.1: Add runtime variable tests (RSYNC_ARGS etc) } +function CheckRunningInstances { + __CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG + + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + pid=$(cat "$RUN_DIR/$PROGRAM.$INSTANCE_ID") + if ps aux | awk '{print $2}' | grep $pid > /dev/null; then + Logger "Another instance [$INSTANCE_ID] of obackup is already running." "CRITICAL" + exit 1 + fi + fi + + echo $SCRIPT_PID > "$RUN_DIR/$PROGRAM.$INSTANCE_ID" +} + function _ListDatabasesLocal { __CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG @@ -2304,6 +2322,7 @@ fi GetLocalOS InitLocalOSSettings CheckEnvironment +CheckRunningInstances PreInit Init PostInit diff --git a/dev/n_obackup.sh b/dev/n_obackup.sh index d4b283a..a0b035a 100755 --- a/dev/n_obackup.sh +++ b/dev/n_obackup.sh @@ -5,7 +5,7 @@ PROGRAM="obackup" AUTHOR="(L) 2013-2016 by Orsiris de Jong" CONTACT="http://www.netpower.fr/obackup - ozy@netpower.fr" PROGRAM_VERSION=2.0-pre -PROGRAM_BUILD=2016030102 +PROGRAM_BUILD=2016030301 IS_STABLE=no source "./ofunctions.sh" @@ -50,6 +50,10 @@ function TrapQuit { exitcode=0 fi + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + rm -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" + fi + KillChilds $$ > /dev/null 2>&1 exit $exitcode } @@ -127,6 +131,20 @@ function CheckCurrentConfig { #TODO-v2.1: Add runtime variable tests (RSYNC_ARGS etc) } +function CheckRunningInstances { + __CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG + + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + pid=$(cat "$RUN_DIR/$PROGRAM.$INSTANCE_ID") + if ps aux | awk '{print $2}' | grep $pid > /dev/null; then + Logger "Another instance [$INSTANCE_ID] of obackup is already running." "CRITICAL" + exit 1 + fi + fi + + echo $SCRIPT_PID > "$RUN_DIR/$PROGRAM.$INSTANCE_ID" +} + function _ListDatabasesLocal { __CheckArguments 0 $# ${FUNCNAME[0]} "$@" #__WITH_PARANOIA_DEBUG @@ -1335,6 +1353,7 @@ fi GetLocalOS InitLocalOSSettings CheckEnvironment +CheckRunningInstances PreInit Init PostInit diff --git a/obackup.sh b/obackup.sh index bf6f625..b258673 100755 --- a/obackup.sh +++ b/obackup.sh @@ -5,7 +5,7 @@ PROGRAM="obackup" AUTHOR="(L) 2013-2016 by Orsiris de Jong" CONTACT="http://www.netpower.fr/obackup - ozy@netpower.fr" PROGRAM_VERSION=2.0-pre -PROGRAM_BUILD=2016030102 +PROGRAM_BUILD=2016030301 IS_STABLE=no ## FUNC_BUILD=2016021803 @@ -947,6 +947,10 @@ function TrapQuit { exitcode=0 fi + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + rm -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" + fi + KillChilds $$ > /dev/null 2>&1 exit $exitcode } @@ -1022,6 +1026,19 @@ function CheckCurrentConfig { #TODO-v2.1: Add runtime variable tests (RSYNC_ARGS etc) } +function CheckRunningInstances { + + if [ -f "$RUN_DIR/$PROGRAM.$INSTANCE_ID" ]; then + pid=$(cat "$RUN_DIR/$PROGRAM.$INSTANCE_ID") + if ps aux | awk '{print $2}' | grep $pid > /dev/null; then + Logger "Another instance [$INSTANCE_ID] of obackup is already running." "CRITICAL" + exit 1 + fi + fi + + echo $SCRIPT_PID > "$RUN_DIR/$PROGRAM.$INSTANCE_ID" +} + function _ListDatabasesLocal { local sql_cmd= @@ -2195,6 +2212,7 @@ fi GetLocalOS InitLocalOSSettings CheckEnvironment +CheckRunningInstances PreInit Init PostInit