diff options
| author | Nathan French <nate@cl0d.com> | 2018-01-19 13:42:54 -0500 |
|---|---|---|
| committer | Nathan French <nate@cl0d.com> | 2018-01-19 13:42:54 -0500 |
| commit | bfa1fd092e8df1937bbeb911ab92b4f853578637 (patch) | |
| tree | 33ed1d0616eceb8715d0458399fff3e74e1a319a /rsync_tmbackup.sh | |
| parent | c313e0a322a6a0b8fc233bf7e272ab0230c35d1b (diff) | |
Fix to assure only one instance is running.
Since this script runs under /usr/bin/env, running 'pgrep $0' will fail
due to it being a child of 'bash'. In order to fix this, pgrep must use
the `-o` flag (oldest pid, or in this case, the leader), and `-f` which
searches the full process name.
Diffstat (limited to 'rsync_tmbackup.sh')
| -rwxr-xr-x | rsync_tmbackup.sh | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/rsync_tmbackup.sh b/rsync_tmbackup.sh index 3d705cc..8df5969 100755 --- a/rsync_tmbackup.sh +++ b/rsync_tmbackup.sh @@ -103,7 +103,7 @@ fn_parse_ssh() { } fn_run_cmd() { - if [ -n "$SSH_DEST_FOLDER_PREFIX" ] + if [ -n "$SSH_DEST_FOLDER_PREFIX" ] then eval "$SSH_CMD '$1'" else @@ -305,9 +305,9 @@ if [ -n "$(fn_find "$INPROGRESS_FILE")" ]; then fn_log_error "Previous backup task is still active - aborting (command: $RUNNINGCMD)." exit 1 fi - else + else RUNNINGPID="$(fn_run_cmd "cat $INPROGRESS_FILE")" - if [ "$RUNNINGPID" = "$(pgrep "$APPNAME")" ]; then + if [ "$RUNNINGPID" = "$(pgrep -o -f "$APPNAME")" ]; then fn_log_error "Previous backup task is still active - aborting." exit 1 fi |
