24 lines
714 B
Bash
24 lines
714 B
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
PID_ROOT="$1"
|
|
[[ -n "$PID_ROOT" ]] || { echo "Usage: $0 <pid-root>" >&2; exit 2; }
|
|
[[ -f "$PID_ROOT/pids.env" ]] || { echo "services are not running: $PID_ROOT" >&2; exit 2; }
|
|
# shellcheck disable=SC1090
|
|
source "$PID_ROOT/pids.env"
|
|
service_pids=("${rrdp_pid:-}" "${rsync_pid:-}")
|
|
for pid in "${service_pids[@]}"; do
|
|
if [[ "$pid" =~ ^[0-9]+$ ]] && kill -0 "$pid" 2>/dev/null; then
|
|
kill "$pid" 2>/dev/null || true
|
|
fi
|
|
done
|
|
for pid in "${service_pids[@]}"; do
|
|
[[ "$pid" =~ ^[0-9]+$ ]] || continue
|
|
for _ in $(seq 1 50); do
|
|
kill -0 "$pid" 2>/dev/null || break
|
|
sleep 0.1
|
|
done
|
|
done
|
|
rm -f "$PID_ROOT/pids.env"
|
|
echo "fixed RRDP/rsync services stopped: $PID_ROOT"
|