Files
URBM/plugin/rc.urbm
T
2026-06-14 23:12:39 +02:00

57 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
DAEMON=/usr/local/sbin/urbmd
PIDFILE=/run/urbm/urbm.pid
LOGFILE=/var/log/urbm.log
start() {
mkdir -p /run/urbm /var/lib/urbm /boot/config/plugins/urbm
chmod 0750 /run/urbm /var/lib/urbm
chmod 0700 /boot/config/plugins/urbm
if [ -s "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
return 0
fi
rm -f "$PIDFILE" /run/urbm/urbm.sock
nohup "$DAEMON" >>"$LOGFILE" 2>&1 &
echo $! >"$PIDFILE"
}
stop() {
STOPPED=0
if [ -s "$PIDFILE" ]; then
PID=$(cat "$PIDFILE")
kill "$PID" 2>/dev/null || true
for _ in $(seq 1 30); do
kill -0 "$PID" 2>/dev/null || break
sleep 1
done
kill -9 "$PID" 2>/dev/null || true
rm -f "$PIDFILE"
STOPPED=1
fi
if [ "$STOPPED" -eq 0 ]; then
PIDS=$(pidof urbmd 2>/dev/null || true)
for PID in $PIDS; do
kill "$PID" 2>/dev/null || true
done
for _ in $(seq 1 30); 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
fi
rm -f /run/urbm/urbm.sock
}
case "${1:-}" in
start) start ;;
stop) stop ;;
restart) stop; start ;;
status)
if [ -s "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then echo "urbmd is running"; else echo "urbmd is stopped"; exit 1; fi
;;
*) echo "Usage: $0 {start|stop|restart|status}"; exit 2 ;;
esac