Fix backup check notifications and workload recovery; release 2026.09.21.r001
This commit is contained in:
+14
-8
@@ -6,7 +6,9 @@ LOGFILE=/var/log/urbm.log
|
||||
|
||||
is_daemon_pid() {
|
||||
PID=${1:-}
|
||||
[ -n "$PID" ] && [ "$(readlink -f "/proc/$PID/exe" 2>/dev/null)" = "$DAEMON" ]
|
||||
[ -n "$PID" ] || return 1
|
||||
EXE=$(readlink "/proc/$PID/exe" 2>/dev/null)
|
||||
[ "$EXE" = "$DAEMON" ] || [ "$EXE" = "$DAEMON (deleted)" ]
|
||||
}
|
||||
|
||||
start() {
|
||||
@@ -35,11 +37,14 @@ stop() {
|
||||
PID=$(cat "$PIDFILE")
|
||||
if is_daemon_pid "$PID"; then
|
||||
kill "$PID" 2>/dev/null || true
|
||||
for _ in $(seq 1 30); do
|
||||
for _ in $(seq 1 300); do
|
||||
is_daemon_pid "$PID" || break
|
||||
sleep 1
|
||||
done
|
||||
is_daemon_pid "$PID" && kill -9 "$PID" 2>/dev/null || true
|
||||
if is_daemon_pid "$PID"; then
|
||||
echo "urbmd is still recovering workloads; refusing to force-kill it" >&2
|
||||
return 1
|
||||
fi
|
||||
STOPPED=1
|
||||
fi
|
||||
rm -f "$PIDFILE"
|
||||
@@ -49,13 +54,14 @@ stop() {
|
||||
for PID in $PIDS; do
|
||||
kill "$PID" 2>/dev/null || true
|
||||
done
|
||||
for _ in $(seq 1 30); do
|
||||
for _ in $(seq 1 300); do
|
||||
[ -z "$(pidof urbmd 2>/dev/null)" ] && break
|
||||
sleep 1
|
||||
done
|
||||
for PID in $(pidof urbmd 2>/dev/null); do
|
||||
kill -9 "$PID" 2>/dev/null || true
|
||||
done
|
||||
if [ -n "$(pidof urbmd 2>/dev/null)" ]; then
|
||||
echo "urbmd is still recovering workloads; stop did not complete" >&2
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
rm -f /run/urbm/urbm.sock
|
||||
}
|
||||
@@ -63,7 +69,7 @@ stop() {
|
||||
case "${1:-}" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; start ;;
|
||||
restart) stop && start ;;
|
||||
status)
|
||||
if [ -s "$PIDFILE" ] && is_daemon_pid "$(cat "$PIDFILE")"; then echo "urbmd is running"; else echo "urbmd is stopped"; exit 1; fi
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user