Teamspeak Paket Synology, kein Status, lässt sich nicht stoppen

Christian1297

Rear Admiral
Registriert
Nov. 2012
Beiträge
5.204
Moin,
ich habe hier ein Teamspeak 3 Paket für ein Synology NAS erstellt. Als Server Version wird der aktuellste TS Server Build genutzt. Das Paket funktioniert auch fast einwandfrei.
Er erkennt lediglich nicht ob der Server läuft oder nicht. Falls sich da jemand auskennt und das Skript so verändern kann dass das funktioniert würde ich mich sehr freuen.

Code:
#!/bin/sh
###BEGIN INIT INFO########################
#
# start-stop-status
# Starts, stops the TS3 server and
# reports status to the package manager
#
###END INIT INFO##########################

DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
cd "$DIR"

case $1 in
  start)
    "$DIR/ts3server_startscript.sh" start &
    exit $?
  ;;
  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
  ;;
  log)
    cat logs/*.log > /tmp/ts3.log
    echo "/tmp/ts3.log";
    exit 0
  ;;
  *)
    exit 0
  ;;
esac

Das ist der Code wo unteranderem der Status überprüft wird. Ansonsten hier noch das ganze Paket: https://www.dropbox.com/s/ggt5ul6y3x6jzbb/TS3 3.0.11.1.rar?dl=0

Der Server lässt sich nicht mal abschalten, es wär also echt super wenn das jemand fixen könnte. Ich kenne mich leider zu wenig damit aus.
 
Muss ich das über Telnet oder SSH eingeben ?

Sorry, habe kaum nen Plan von Linux :D
 
Das funktioniert nicht .

Usage: readlink FILE

Display the value of a symlink

Could not locate binary file, aborting

Wenn ich nur in /var/packages/ts3server navigiere bekomm ich die Meldung Permission denied. Hat das was zu sagen ?
 
Zuletzt bearbeitet:
Als root solltest du eigentlich in das Verzeichnis reinkommen. Du kannst ja mal zu /var/packages wechseln und dir die Zugriffsrechte anschauen:

Code:
cd /var/packages
ls -al

Zu der Fehlermeldung: auf dem Synology ist busybox installiert. Vielleicht ist auch ne abgespeckte Version von readlink dabei, die den -f-Parameter nicht kennt. Deshalb diese "Usage: ..." Meldung.
Und deshalb wird wahrscheinlich nicht in das Verzeichnis mit der Teamspeak-Binary gewechselt, die dann folglich nicht gefunden wird.

Kannst ja mal im SSH eingeben:
Code:
readlink /var/packages/ts3server/target/teamspeak3-server_linux-x86/ts3server_startscript.sh
readlink -f /var/packages/ts3server/target/teamspeak3-server_linux-x86/ts3server_startscript.sh

Wenn das erste funktioniert aber das zweite nicht, kann man den Befehl im Start-/Stopp-Skript entsprechend ändern und das -f entfernen.
 
putwtqy5.jpg
puttlrofg.jpg


Ich hoffe du kannst da etwas sinnvolles herauslesen ^^
 
Okay, die Zugriffsrechte sehen aber okay aus. Wüsste nicht, warum du da nicht reinkommst als root.
Gut, dein "readlink"-Befehl kennt den Parameter -f nicht. Ist sicher nicht weiter tragisch.
Wenn du die Datei /var/packages/ts3server/target/teamspeak3-server_linux-x86/ts3server_startscript.sh
mit einem Texteditor deiner Wahl bearbeitest, kannst du in Zeile 6 das -f entfernen.
Wenn das auch nicht helfen sollte, kannst du den Pfad auch direkt hardcoden, indem du in Zeile 7 ersetzt durch:
Code:
BINARYPATH="/var/packages/ts3server/target/teamspeak3-server_linux-x86"

Was mich nur wundert: im ersten Beitrag schreibst du "Das Paket funktioniert auch fast einwandfrei."?
Wie meinst du das denn? Du kannst den TS-Server doch noch nichtmal starten?
 
Zuletzt bearbeitet:
Okay ich probier das mal mit dem -f entfernen.

Nach der installation hat sich der Server automatisch gestartet, ich kann sogar drauf joinen aber jetzt habe ich halt keine kontrolle über den Server.
 
@Zu dem Thema, dass das Skript oben nicht erkennt, ob der TS-Server läuft oder nicht. Das Skript ist auch nicht so programmiert, dass es auf der Konsole ausgibt, ob der Server läuft oder nicht. Es beendet sich dann nur mit einem jeweils anderen Statuscode. Du kannst es so verändern, dass du auch was siehst:

Code:
#!/bin/sh
###BEGIN INIT INFO########################
#
# start-stop-status
# Starts, stops the TS3 server and
# reports status to the package manager
#
###END INIT INFO##########################

DIR="/var/packages/ts3server/target/teamspeak3-server_linux-x86"
cd "$DIR"

case $1 in
  start)
    "$DIR/ts3server_startscript.sh" start &
    exit $?
  ;;
  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
        echo "TS-Server is running"
        exit 0  # Server is running
      else
        echo "TS-Server seems to have died"
        exit 1  # Server seems to have died
      fi
    else
      echo "TS-Server is not running"
      exit 2  # No server running (ts3server.pid is missing)
    fi
  ;;
  log)
    cat logs/*.log > /tmp/ts3.log
    echo "/tmp/ts3.log";
    exit 0
  ;;
  *)
    exit 0
  ;;
esac
 
Das -f zu entfernen hat nichts gebracht oder ich mache etwas anders falsch.

Zu dem Skript, das soll auch nichts in der Konsole ausgeben sondern ist für den Paketmanager des NAS. ab

syn0cuqd.jpg


Darüber würde ich den TS am liebsten steuern. Sprich da wo jetzt Ausführen steht müsste eigentlich Stopp stehen da der Server ja läuft. Nur der Synology Paketmanager erkennt halt garnicht das der TS Server läuft.

Wenn du mir da weiter helfen kannst brauch ich das Konsolen gedönns auch nicht mehr.


edit:
Wenn das auch nicht helfen sollte, kannst du den Pfad auch direkt hardcoden, indem du in Zeile 7 ersetzt durch:
Code:
BINARYPATH="/var/packages/ts3server/target/teamspeak3-server_linux-x86"

[strike]Dann funktioniert der Server garnicht mehr :freaky:[/strike]

geht wieder, habe falsch gepackt
 
Zuletzt bearbeitet:
Du hast das -f entfernt. Wie lautet denn die Fehlermeldung jetzt?

Wie man das mit dem Synology Paketmanager integiert weiß ich nicht. Normalerweise wird ein Init-Skript in /etc/init.d bzw. /opt/etc/init.d abgelegt und ausführbar gemacht, damit der Dienst beim Hochfahren gestartet wird.
 
Zuletzt bearbeitet:
Zuletzt bearbeitet:
Wenn der Server nicht mit dem Skript gestartet wurde, wurde anscheinend auch kein PID-File (Datei in der die Prozessnummer des Server drinsteht) angelegt. Dann kannst du den Server mit diesem auch nicht beenden.
Das spielt jetzt halt ne Rolle, wenn der Server vorher von der Synology-Paketverwaltung gestartet wurde.

Kannst ihn natürlich mit "kill" abschiessen, wenn du vorher mit "ps aux | grep ts3server_linux_x86" die Prozessnummer rausbekommst.

PS: du hast den Befehl oben zweimal hintereinander eingegeben.
 
Zuletzt bearbeitet:
Troublegum schrieb:
PS: du hast den Befehl oben zweimal hintereinander eingegeben.

Funktioniert trotzdem nicht :D

Bei älteren Teamspeak Versionen konnte man noch alles über den Paketmanager steuern. Erst seit einer der neueren Versionen gibt es Probleme. Dann müsste man das doch eigentlich wieder richten können ?
 
Mal versucht, die Prozessnummer rauszubekommen, den TS Server abzuschießen und neu zu starten? Das Start/Stop-Skript, was du jetzt bearbeitet hast, funktioniert ja jetzt. Der Status stimmt ws. nicht, weil keine PID-Datei da ist.
Ob die Synology Paketverwaltung *dieses* Start/Stop-Skript aufruft weiß ich leider nicht.

Oder lässt du ihn jetzt erstmal einfach laufen und laufen und laufen? Wenn man nicht rebooten muss, ist das ja OK. :-)
 
Zuletzt bearbeitet:
Na, im Moment brauche ich gar keinen TS Server . Es geht mir eher um die Machbarkeit und dann halt auch so perfekt das es über die Synology Paketverealtunf steuerbar ist. Ich bin jetzt aber auch erstmal schlafen, probiere morgen weiter :D

btw: Danke schon mal für deine super Hilfe :)
Ergänzung ()

Okay, wenn ich den Server per kill <pid> beende kann ich ihn über den Synology Paket Manager wieder starten. Der Status wird danach aber trotzdem nicht korrekt angezeigt. Ich habe nun eine eine ältere Teamspeakserver Version probiert und damit funktioniert ALLES einwandfrei.

Jetzt ist die Frage warum es mit der neuen Version nicht läuft :/
 
Zurück
Oben