diff options
author | Joerg Jaspert <joerg@debian.org> | 2009-12-30 20:40:17 +0100 |
---|---|---|
committer | Joerg Jaspert <joerg@debian.org> | 2009-12-30 20:40:17 +0100 |
commit | fc608f04f41b5a1827a636087dfe4e28912a34ef (patch) | |
tree | 6af2817baa969dec7eebaaa7379e3a9970aeab95 /bin/ftpsync | |
parent | 6150ca3f200c75d902a5f61af7c99923e8a8d3aa (diff) |
ftpsync
update the pid written in our lockfile after backgrounding mainroutine
Thanks to Kurt Roeckx for spotting this.
Signed-off-by: Joerg Jaspert <joerg@debian.org>
Diffstat (limited to 'bin/ftpsync')
-rwxr-xr-x | bin/ftpsync | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/bin/ftpsync b/bin/ftpsync index db2ca1e..73b6604 100755 --- a/bin/ftpsync +++ b/bin/ftpsync @@ -329,7 +329,12 @@ HUB=${HUB:-"false"} # A function for the majority of the work. This function *CAN* run backgrounded. # It will be when we simply sync all. Staged syncs will not background, of course. function mainroutine() { -# Look who pushed us and note that in the log. + if [ $BASH_SUBSHELL -gt 0 ]; then + log "Mirrorrun is done backgrounded" + # Update our pid in our lockfile. Helps for the cases we go background + echo "${BASHPID}" > "${LOCK}" + fi + # Look who pushed us and note that in the log. log "Mirrorsync start" PUSHFROM="${SSH_CONNECTION%%\ *}" if [ -n "${PUSHFROM}" ]; then @@ -522,6 +527,9 @@ exec >"$LOG" 2>&1 </dev/null if [ "xtruex" = "x${SYNCALL}x" ]; then # We have a simple normal mirror run, not staged. Lets background it. mainroutine & + # Wait 2 seconds before we exit, then the ${LOCK} for sure has the pid + # of the mainroutine in it + sleep 2 else # Staged run, we have to wait until we are done before we exit, uplink # is using that for synchronisation |