Ich habe nur den stop) und status) Part abgeändert.
Normalerweise wird immer eine Prozessid datei kurz .pid erstellt solbald der Server startet.
In dieser datei befindet sich die ID des Ts3Server prozesses.
Diese Datei wird aber im aktuellen build 3.0.11.1 nicht erstellt.
Warum das so ist kann ich leider noch nicht sagen, ich vermute das es sich wieder mal um veraltetet oder incompatible libs/bins seitens Synology handelt. (ist aber nur eine vermutung)
Der Orginale Status) Part prüft nur ob diese datei vorhanden ist, wenn sie es ist ist der Server Online, wenn nicht Oflline.
Deswegen wird er auch immer als Offline angezeigt da diese datei nicht erstellt wird.
Der Orginale Stop) Part ruft das ts3server_startscript.sh mit dem Befhel stop auf, dieser liest aus der PID die ID des Ts3Server Prozesse aus und schließt diesen.
Da die PID nicht vorhanden ist kann er auch nicht geschlossen werden.
In meinem Status) Part lese ich einfach nur die Prozesse aus und wenn der tsserver Prozess vorhanden ist ist er Online.
In meinem Stop) Part lese ich ich die Prozess ID die Prozesses aus und schließe diesen.
Die Änderungen sind als eine art Workaround anzusehen bis das Problem identifiziert wurde.
Orginal:
Rich (BBCode):
stop)
"$DIR/ts3server_startscript.sh" stop &
exit $?
;;
status)
if [ -e "$DIR/ts3server.pid" ]; then
if ( kill -0 $(cat "$DIR/ts3server.pid") 2> /dev/null ); then
exit 0 # Server is running
else
exit 1 # Server seems to have died
fi
else
exit 2 # No server running (ts3server.pid is missing)
fi
;;
Neu:
Rich (BBCode):
stop)
$PS | $GREP -v grep | $GREP ts3server > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && kill `$PS | $GREP -v grep | $GREP ts3server | $AWK '{print $1}'`
;;
status)
$PS | $GREP -v grep | $GREP ts3server > /dev/null
CHECK=$?
[ $CHECK -eq 0 ] && exit 0 || exit 1
;;
mfg Diablo