Server/Linux/Starten

Aus TeamSpeak Wiki
Wechseln zu: Navigation, Suche

Nach der Installation eines TeamSpeak 3 Servers muss dieser gestartet werden. Entweder tut man dies gemäß der unteren Anleitungen nach jedem Neustart des Host-Systems neu, oder richtet den Autostart ein.

Einfacher Server Start ohne Konfiguration

Ein einfacher Start des Servers ist mit diesem Befehl möglich:

  1. ./ts3server_minimal_runscript.sh

Dabei werden die wichtigen Zugangsdaten für Query direkt ausgegeben und sollten unbedingt notiert werden. Auch der Berechtigungsschlüssel für den standardmäßig erstellten Server wird angezeigt. Bitte beachte, dass der Server geschlossen wird, sobald das Terminal beendet wird.


Einfacher Server Start ohne Konfiguration im Hintergrund mit Putty

Damit der TeamSpeak Server nicht beendet wird, sobald das Terminal geschlossen wird, muss man den Prozess vom Terminal lösen oder in den Hintergrund verschieben. Dafür kann das Programm Screen genutzt werden. Es wird mit folgenden Befehl installiert: Debian:

  1. apt-get install screen

Das gesonderte Terminal wird mit folgenden Befehl gestartet:

  1. screen -A -m -d -S ts3-server

Der Screen läuft nun im Hintergrund und kann sowohl jetzt, als auch in der Zukunft, mit diesem Befehl aufgerufen werden:

  1. screen -r ts3-server

Um den Screen zu verlassen (nicht zu schließen!) drückt man STRG A D. Innerhalb des Screens kann der Server wie oben beschrieben gestartet werden.

Server als Dienst installieren

Damit der TeamSpeak Server nicht beendet wird, sobal das Terminal geschlossen wird, ist es möglich diesen über den oben genannten Weg per screen zu starten. Allerdings wird die Verwendung von screen nicht empfohlen, da es die Administration (neustarten, ausschalten, einschalten) erschwert. Besser ist es den Server als Dienst zu installieren. Das folgende Bash-Script kann dazu verwendet werden. Mit diesem Script könnt ihr auch sehr komfortabel die Standard-Ports anpassen:

  1. #!/bin/bash
  2.  
  3. COMMANDLINE_PARAMETERS="default_voice_port=9987 voice_ip=YOUR.IP.HE.RE  query_ip=YOUR.IP.HE.RE  query_port=10011 disable_db_logging=0"
  4.  
  5.  
  6. BINARYPATH="/home/teamspeak/ts3-server/"
  7. cd "${BINARYPATH}"
  8. LIBRARYPATH="$(pwd)"
  9.  
  10. if [ -e "ts3server_linux_x86" ]; then
  11.         BINARYNAME="ts3server_linux_x86"
  12. else
  13.         BINARYNAME="ts3server_linux_amd64"
  14. fi
  15.  
  16.  
  17. case "$1" in
  18.         start)
  19.                 if [ -e ts3server.pid ]; then
  20.                         if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
  21.                                 echo "The server is already running, try restart or stop"
  22.                                 exit 1
  23.                         else
  24.                                 echo "ts3server.pid found, but no server running. Possibly your previously started server crashed"
  25.                                 echo "Please view the logfile for details."
  26.                                 rm ts3server.pid
  27.                         fi
  28.                 fi
  29.                 if [ "${UID}" = "0" ]; then
  30.                         echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
  31.                         for c in $(seq 1 10); do
  32.                                 echo -n "!"
  33.                                 sleep 1
  34.                         done
  35.                         echo "!"
  36.                 fi
  37.                 echo "Starting the TeamSpeak 3 server"
  38.                 if [ -e "$BINARYNAME" ]; then
  39.                         if [ ! -x "$BINARYNAME" ]; then
  40.                                 echo "${BINARYNAME} is not executable, trying to set it"
  41.                                 chmod u+x "${BINARYNAME}"
  42.                         fi
  43.                         if [ -x "$BINARYNAME" ]; then
  44.                                 export LD_LIBRARY_PATH="${LIBRARYPATH}:${LD_LIBRARY_PATH}"
  45.                                 "./${BINARYNAME}" ${COMMANDLINE_PARAMETERS} > /dev/null &
  46.                                 echo $! > ts3server.pid
  47.                                 echo "TeamSpeak 3 server started, for details please view the log file"
  48.                         else
  49.                                 echo "${BINARNAME} is not exectuable, cannot start TeamSpeak 3 server"
  50.                         fi
  51.                 else
  52.                         echo "Could not find ${BINARYNAME}, aborting"
  53.                         exit 5
  54.                 fi
  55.         ;;
  56.         stop)
  57.                 if [ -e ts3server.pid ]; then
  58.                         echo -n "Stopping the TeamSpeak 3 server"
  59.                         if ( kill -TERM $(cat ts3server.pid) 2> /dev/null ); then
  60.                                 for c in $(seq 1 300); do
  61.                                         if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
  62.                                                 echo -n "."
  63.                                                 sleep 1
  64.                                         else
  65.                                                 break
  66.                                         fi
  67.                                 done
  68.                         fi
  69.                         if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
  70.                                 echo "Server is not shutting down cleanly - killing"
  71.                                 kill -KILL $(cat ts3server.pid)
  72.                         else
  73.                                 echo "done"
  74.                         fi
  75.                         rm ts3server.pid
  76.                 else
  77.                         echo "No server runing (ts3server.pid is missing)"
  78.                         exit 7
  79.                 fi
  80.         ;;
  81.         restart)
  82.                 $0 stop && $0 start || exit 1
  83.         ;;
  84.         status)
  85.                 if [ -e ts3server.pid ]; then
  86.                         if ( kill -0 $(cat ts3server.pid) 2> /dev/null ); then
  87.                                 echo "Server is running"
  88.                         else
  89.                                 echo "Server seems to have died"
  90.                         fi
  91.                 else
  92.                         echo "No server running (ts3server.pid is missing)"
  93.                 fi
  94.         ;;
  95.         *)
  96.                 echo "Usage: ${0} {start|stop|restart|status}"
  97.                 exit 2
  98. esac
  99. exit 0

Dieses Script wird einfach in den Ordner des Teamspeak Server kopiert und dann ausführbar machen:

  1. cd /home/teamspeak/ts3-server/
  2. nano ts3server_startscript.sh
  3. # Kopieren des Scripts (siehe oben)
  4. chmod +x ts3server_startscript.sh

Ein weiteres Script sorgt dafür, dass der Server als Dienst genutzt werden kann und mit dem richtigen Nutzer ausgeführt wird.

  1. #!/bin/bash
  2.  
  3. # User which will run the Teamspeak-Server
  4. USER=teamspeak
  5.  
  6. # The installation directory of the Teamspeak-Server
  7. DIR=/home/teamspeak/ts3-server
  8.  
  9. # Run the start script
  10. su -c "$DIR/ts3server_startscript.sh $1" - $USER

Dieses Script muss unter /apt/init.d/ angelegt werden. (Root-Rechte nötig!)

  1. cd /etc/init.d
  2. nano teamspeak
  3. # Kopieren des Scripts
  4. chmod +x teamspeak

Jetzt kann des Server einfach als root gestartet, gestoppt, neugestartet oder der Status erfahren werden.

  1. sudo su
  2. service teamspeak start
  3. # oder
  4. service teamspeak stop
  5. # oder
  6. service teamspeak restart
  7. # oder
  8. service teamspeak status