summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/wsrep_sst_rsync.sh17
1 files changed, 11 insertions, 6 deletions
diff --git a/scripts/wsrep_sst_rsync.sh b/scripts/wsrep_sst_rsync.sh
index b3a07f8bbf6..6d8181a0b14 100644
--- a/scripts/wsrep_sst_rsync.sh
+++ b/scripts/wsrep_sst_rsync.sh
@@ -18,8 +18,10 @@
# This is a reference script for rsync-based state snapshot tansfer
-RSYNC_PID=
-RSYNC_CONF=
+RSYNC_PID= # rsync pid file
+RSYNC_CONF= # rsync configuration file
+RSYNC_REAL_PID= # rsync process id
+
OS=$(uname)
[ "$OS" == "Darwin" ] && export -n LD_LIBRARY_PATH
@@ -32,10 +34,12 @@ wsrep_check_programs rsync
cleanup_joiner()
{
- local PID=$(cat "$RSYNC_PID" 2>/dev/null || echo 0)
- wsrep_log_info "Joiner cleanup. rsync PID: $PID"
- [ "0" != "$PID" ] && kill $PID && sleep 0.5 && kill -9 $PID >/dev/null 2>&1 \
- || :
+ wsrep_log_info "Joiner cleanup. rsync PID: $RSYNC_REAL_PID"
+ [ "0" != "$RSYNC_REAL_PID" ] && \
+ kill $RSYNC_REAL_PID && \
+ sleep 0.5 && \
+ kill -9 $RSYNC_REAL_PID >/dev/null 2>&1 || \
+ :
rm -rf "$RSYNC_CONF"
rm -rf "$MAGIC_FILE"
rm -rf "$RSYNC_PID"
@@ -45,6 +49,7 @@ cleanup_joiner()
fi
}
+# Check whether rsync process is still running.
check_pid()
{
local pid_file=$1