fix:备份流程
This commit is contained in:
@@ -3,6 +3,9 @@ set -euo pipefail
|
||||
|
||||
STANDARD_HOME_DIR="${STANDARD_HOME_DIR:?STANDARD_HOME_DIR is required}"
|
||||
STANDARD_RUN_USER="${STANDARD_RUN_USER:?STANDARD_RUN_USER is required}"
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
"${SCRIPT_DIR}/stop_standard_apps.sh" || true
|
||||
|
||||
su - "${STANDARD_RUN_USER}" -s /bin/bash "${STANDARD_HOME_DIR}/cmsp/start_cmsp.sh"
|
||||
su - "${STANDARD_RUN_USER}" -s /bin/bash "${STANDARD_HOME_DIR}/cmtp/start_cmtp.sh"
|
||||
|
||||
@@ -3,15 +3,40 @@ set -euo pipefail
|
||||
|
||||
STANDARD_HOME_DIR="${STANDARD_HOME_DIR:?STANDARD_HOME_DIR is required}"
|
||||
STANDARD_RUN_USER="${STANDARD_RUN_USER:?STANDARD_RUN_USER is required}"
|
||||
STOP_TIMEOUT_SECONDS="${STOP_TIMEOUT_SECONDS:-30}"
|
||||
|
||||
wait_until_stopped() {
|
||||
local pattern="$1"
|
||||
local label="$2"
|
||||
local deadline=$((SECONDS + STOP_TIMEOUT_SECONDS))
|
||||
while pgrep -f "${pattern}" >/dev/null 2>&1; do
|
||||
if (( SECONDS >= deadline )); then
|
||||
echo "[WARN] ${label} still running after ${STOP_TIMEOUT_SECONDS}s, force killing"
|
||||
pkill -9 -f "${pattern}" >/dev/null 2>&1 || true
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
stop_by_pattern() {
|
||||
local pattern="$1"
|
||||
local label="$2"
|
||||
if pgrep -f "${pattern}" >/dev/null 2>&1; then
|
||||
echo "[INFO] stopping ${label}: ${pattern}"
|
||||
pkill -f "${pattern}" >/dev/null 2>&1 || true
|
||||
wait_until_stopped "${pattern}" "${label}"
|
||||
fi
|
||||
}
|
||||
|
||||
if [ -x "${STANDARD_HOME_DIR}/cmsp/stop_cmsp.sh" ]; then
|
||||
su - "${STANDARD_RUN_USER}" -s /bin/bash "${STANDARD_HOME_DIR}/cmsp/stop_cmsp.sh" || true
|
||||
else
|
||||
pkill -f "${STANDARD_HOME_DIR}/cmsp" >/dev/null 2>&1 || true
|
||||
fi
|
||||
stop_by_pattern "${STANDARD_HOME_DIR}/cmsp" "CMEP-CMSP path"
|
||||
stop_by_pattern "CMEP-CMSP" "CMEP-CMSP jar"
|
||||
|
||||
if [ -x "${STANDARD_HOME_DIR}/cmtp/stop_cmtp.sh" ]; then
|
||||
su - "${STANDARD_RUN_USER}" -s /bin/bash "${STANDARD_HOME_DIR}/cmtp/stop_cmtp.sh" || true
|
||||
else
|
||||
pkill -f "${STANDARD_HOME_DIR}/cmtp" >/dev/null 2>&1 || true
|
||||
fi
|
||||
stop_by_pattern "${STANDARD_HOME_DIR}/cmtp" "CMEP-CMTP path"
|
||||
stop_by_pattern "CMEP-CMTP" "CMEP-CMTP jar"
|
||||
|
||||
Reference in New Issue
Block a user