Fix backup check notifications and workload recovery; release 2026.09.21.r001

This commit is contained in:
Mikei386
2026-09-21 20:36:31 +02:00
parent 8f75a04db6
commit 5009dc202b
14 changed files with 295 additions and 38 deletions
+14 -8
View File
@@ -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
;;