This is an old revision of the document!
Table of Contents
TEAMSPEAK 3 Server for Linux - init start/stop script for Debian/Ubuntu
Seit Dezember 2009 gibt es nun “endlich” die Teamspeak Version 3 (Zu dieser Zeit noch BETA/Testversion) auf dem Markt. Der Server sowie auch der Client wurden von der Teamspeak GmbH komplett von Grund auf neu entwickelt. Die Installation des TS3 Servers für Linux ist denkbar einfach und wird im TAR Ball erklärt. Seit der Version 3.0 Beta 17 wurde dem Paket endlich auch ein ordentliches Start/Stop “Init Script” beigelegt. Dennoch ist es für Debian bzw Ubuntu-Server installationen nicht sonderlich geeignet. Zum Beispiel lässt sich im beigefügten Script nicht konfigurieren unter welchem Benutzeraccount der Daemon laufen soll. Immerhin warnt es inzw. jedoch davor den Daemon als “root” laufen zu lassen :).
Darum habe ich mein altes Init-Script für Teamspeak2 aktualisiert und hier zur freien Verwendung mit Teamspeak3-Server wieder veröffentlicht.
Nachtrag:
Das Grundgerüst (Skeleton) dieses Init-Scriptes stammt natürlich nicht von mir, sondern aus den Debian/Ubuntu Packages unter /etc/init.d/skeleton . — Axel Werner 2010-01-17 17:21
Erläuterungen zum Script
In meinem Fall habe ich den Teamspeak3 Daemon nach /opt/teamspeak3-server_linux-amd64 entpackt und starte diesen nicht als Root, sondern nur als einfachen Benutzeraccount “ts”. Der “ts” User hat des weiteren weder eine Login-Shell, noch ein Passwort. Auf diese Weise wird ein Angreifer im Falle einer Sicherheitslücke im TS Server wahrscheinlich nicht weit kommen, da er sich weder anmelden kann, noch eine Shell erhält.
Wie man einen einfachen Useraccount ohne Shell und Passwort erstellt zeige ich hier jedoch nicht. Dazu muss jeder Linux/Unix-Admin selbst in der Lage sein, wenn er einen Linux Server im Internet sein Eigen nennt. (Stichworte: man useradd ; man passwd ; man shadow)
Man sollte auch nicht vergessen die Symbolic-Links in den einzelnen Runlevels zu erstellen. Das bereitstellen des Init-Scripts selbst startet schließlich noch nicht die Dienste.
Das INIT Script
Das Script kann durch klicken auf den Dateinamen (in der Registerkarte/im Tab) heruntergeladen werden.
Das hier abgebildete Script wurde zusammen mit der Teamspeak3 Server V.3.0.0-rc1 unter Ubuntu Server 10.04 LTS getestet. Da die Firma Teamspeak zur Zeit noch viele Änderungen am Server (und den Clients) vornimmt könnten weitere Änderungen am Script zukünftig notwendig werden. Schreibt mir ggf. eine Mail oder schaut ab und zu mal hier vorbei um es inzw. ein neues Script gibt.
- teamspeak-server3
#! /bin/sh ### BEGIN INIT INFO # Provides: teamspeak3-Server # Required-Start: networking # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: S 0 1 6 # Short-Description: TeamSpeak3 Server Daemon # Description: Starts/Stops/Restarts the TeamSpeak3 Server Daemon ### END INIT INFO # # ############################################################## # Version History / Change Log: ############################################################## # # 2010-01-07 Axel Werner CHANGE: updated script for # all new TS3 Server. # ADD: TS3 Server seems to need # --background option for # start-stop-deamon # # 2010-01-21 Axel Werner FIX: --background option is not allowed # in STOP section. removed it. # # 2010-02-06 Axel Werner FIX: Since server_linux-amd64-3.0.0-beta17 # the Daemon requires the environment # variable $LD_LIBRARY_PATH to be set and # must include the teamspeak basedirectory # # # # ############################################################## set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="TeamSpeak3 Server Linux AMD64" NAME=teamspeak-server3 USER=ts DIR=/opt/teamspeak3-server_linux-amd64 DAEMON=$DIR/ts3server_linux_amd64 PIDFILE=/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME #fix 2010-02-06 Axel Werner export LD_LIBRARY_PATH="$DIR:$LD_LIBRARY_PATH" # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 d_start() { start-stop-daemon --start --quiet \ --background \ --chuid $USER \ --chdir $DIR \ --exec $DAEMON \ > /dev/null \ || echo -n " already running" } d_stop() { start-stop-daemon --stop --quiet \ --chuid $USER \ --chdir $DIR \ --exec $DAEMON \ || echo -n " not running" } case "$1" in start) echo -n "Starting $DESC: $NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC: $NAME" d_stop echo "." ;; restart|force-reload) echo -n "Restarting $DESC: $NAME" d_stop sleep 15 d_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac exit 0
BUG REPORTS / Patches
Bug Reports oder Verbesserungsvorschläge (patches) sind willkommen!
Und nun viel Spass mit eurem neuen TS3 Server unter Linux! — Axel Werner 2011-08-05 19:54