Merge pull request #36 from eaut/avoid-concurrent
Prevent execution of concurrent backup tasks
This commit is contained in:
+7
-1
@@ -113,6 +113,10 @@ fi
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
if [ -f "$INPROGRESS_FILE" ]; then
|
||||
if pgrep -F "$INPROGRESS_FILE" > /dev/null 2>&1 ; then
|
||||
fn_log_error "Previous backup task is still active - aborting."
|
||||
exit 1
|
||||
fi
|
||||
if [ -n "$PREVIOUS_DEST" ]; then
|
||||
# - Last backup is moved to current backup folder so that it can be resumed.
|
||||
# - 2nd to last backup becomes last backup.
|
||||
@@ -123,6 +127,8 @@ if [ -f "$INPROGRESS_FILE" ]; then
|
||||
else
|
||||
PREVIOUS_DEST=""
|
||||
fi
|
||||
# update PID to current process to avoid multiple concurrent resumes
|
||||
echo "$$" > "$INPROGRESS_FILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -213,7 +219,7 @@ while : ; do
|
||||
fn_log_info "Running command:"
|
||||
fn_log_info "$CMD"
|
||||
|
||||
touch -- "$INPROGRESS_FILE"
|
||||
echo "$$" > "$INPROGRESS_FILE"
|
||||
eval $CMD
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user