MUA: Echte Unraid-Plugin-Struktur
- plugin/mua.plg: <!DOCTYPE PLUGIN> XML mit <FILE Run> + <INLINE> - plugin/plugin.json: Metadaten - scripts/rc.mua: SysVinit-Service (statt systemd) - scripts/plugin.php: WebGUI-Tab (Settings > MUA) - README.md: Aktualisiert - Alte Dateien entfernt (MUA.plg, mua.service, install/update/remove.sh)
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
# MUA - Mikes Unraid Agent
|
||||
# SysVinit-Service-Script (rc.mua)
|
||||
# Unraid nutzt SysVinit, kein systemd.
|
||||
# Wird installiert nach /etc/rc.d/rc.mua
|
||||
|
||||
PLUGIN_DIR="/usr/local/emhttp/plugins/mua"
|
||||
SERVER="$PLUGIN_DIR/mcp/server.php"
|
||||
PIDFILE="/var/run/mua.pid"
|
||||
LOGFILE="/var/log/plugins/mua.log"
|
||||
PORT=3002
|
||||
PHP_BIN="/usr/bin/php"
|
||||
|
||||
# PHP-Binary finden (Fallback)
|
||||
if [ ! -x "$PHP_BIN" ]; then
|
||||
PHP_BIN=$(command -v php 2>/dev/null)
|
||||
fi
|
||||
|
||||
start() {
|
||||
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
|
||||
echo " MUA läuft bereits (PID $(cat "$PIDFILE"))"
|
||||
return 0
|
||||
fi
|
||||
if [ ! -f "$SERVER" ]; then
|
||||
echo " FEHLER: Server-Datei nicht gefunden: $SERVER"
|
||||
return 1
|
||||
fi
|
||||
# Server starten (detached)
|
||||
nohup "$PHP_BIN" -S 0.0.0.0:$PORT "$SERVER" >> "$LOGFILE" 2>&1 &
|
||||
echo $! > "$PIDFILE"
|
||||
sleep 1
|
||||
if kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
|
||||
echo " MUA gestartet (PID $(cat "$PIDFILE"), Port $PORT)"
|
||||
return 0
|
||||
else
|
||||
echo " FEHLER: MUA konnte nicht gestartet werden"
|
||||
cat "$LOGFILE" 2>/dev/null | tail -5
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
if [ -f "$PIDFILE" ]; then
|
||||
local pid=$(cat "$PIDFILE")
|
||||
if kill -0 "$pid" 2>/dev/null; then
|
||||
kill "$pid" 2>/dev/null
|
||||
sleep 1
|
||||
kill -0 "$pid" 2>/dev/null && kill -9 "$pid" 2>/dev/null
|
||||
echo " MUA gestoppt (PID $pid)"
|
||||
fi
|
||||
rm -f "$PIDFILE"
|
||||
else
|
||||
# Fallback: per Port suchen
|
||||
local pid=$(lsof -ti :$PORT 2>/dev/null)
|
||||
if [ -n "$pid" ]; then
|
||||
kill "$pid" 2>/dev/null
|
||||
echo " MUA gestoppt (PID $pid, per Port)"
|
||||
else
|
||||
echo " MUA läuft nicht"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
status() {
|
||||
if [ -f "$PIDFILE" ] && kill -0 "$(cat "$PIDFILE")" 2>/dev/null; then
|
||||
echo " MUA läuft (PID $(cat "$PIDFILE"), Port $PORT)"
|
||||
return 0
|
||||
else
|
||||
echo " MUA läuft nicht"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start) start ;;
|
||||
stop) stop ;;
|
||||
restart) stop; start ;;
|
||||
status) status ;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|status}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user