prevent execution of concurrent backup tasks

This commit is contained in:
eaut 2015-02-13 22:51:59 +01:00
parent 21c24be547
commit 5740b9a43e

View file

@ -113,6 +113,10 @@ fi
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
if [ -f "$INPROGRESS_FILE" ]; then 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 if [ -n "$PREVIOUS_DEST" ]; then
# - Last backup is moved to current backup folder so that it can be resumed. # - Last backup is moved to current backup folder so that it can be resumed.
# - 2nd to last backup becomes last backup. # - 2nd to last backup becomes last backup.
@ -123,6 +127,8 @@ if [ -f "$INPROGRESS_FILE" ]; then
else else
PREVIOUS_DEST="" PREVIOUS_DEST=""
fi fi
# update PID to current process to avoid multiple concurrent resumes
echo "$$" > "$INPROGRESS_FILE"
fi fi
fi fi
@ -213,7 +219,7 @@ while : ; do
fn_log_info "Running command:" fn_log_info "Running command:"
fn_log_info "$CMD" fn_log_info "$CMD"
touch -- "$INPROGRESS_FILE" echo "$$" > "$INPROGRESS_FILE"
eval $CMD eval $CMD
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------