mirror of
https://github.com/laurent22/rsync-time-backup
synced 2024-11-10 06:04:18 +00:00
Merge pull request #80 from dovecode/cygwin-conflict-support
Add cygwin support for checking if the previous backup is still running
This commit is contained in:
commit
8f8fbeb130
1 changed files with 14 additions and 4 deletions
|
@ -269,10 +269,20 @@ fi
|
|||
|
||||
if [ -n "$(fn_find "$INPROGRESS_FILE")" ]; then
|
||||
if [ "$OSTYPE" == "cygwin" ]; then
|
||||
# TODO: Cygwin reports the name of currently running Bash scripts as just "/usr/bin/bash"
|
||||
# TODO: so the pgrep solution below won't work. Need to use "procps -wwFAH", grep
|
||||
# TODO: the script name, and extract the process ID from it.
|
||||
fn_log_warn "Cygwin only: Previous backup task has either been interrupted or it might still be active, but there is currently no check for this. Assuming that the task was simply interrupted."
|
||||
# 1. Grab the PID of previous run from the PID file
|
||||
RUNNINGPID="$(fn_run_cmd "cat $INPROGRESS_FILE")"
|
||||
|
||||
# 2. Get the command for the process currently running under that PID and look for our script name
|
||||
RUNNINGCMD="$(procps -wwfo cmd -p $RUNNINGPID --no-headers | grep "$APPNAME")"
|
||||
|
||||
# 3. Grab the exit code from grep (0=found, 1=not found)
|
||||
GREPCODE=$?
|
||||
|
||||
# 4. if found, assume backup is still running
|
||||
if [ "$GREPCODE" = 0 ]; then
|
||||
fn_log_error "Previous backup task is still active - aborting (command: $RUNNINGCMD)."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
RUNNINGPID="$(fn_run_cmd "cat $INPROGRESS_FILE")"
|
||||
if [ "$RUNNINGPID" = "$(pgrep "$APPNAME")" ]; then
|
||||
|
|
Loading…
Reference in a new issue