User Tools

Site Tools


it-artikel:linux:teamspeak-3-server-for-linux-init-start-stop-script-for-debian-ubuntu

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

it-artikel/linux/teamspeak-3-server-for-linux-init-start-stop-script-for-debian-ubuntu.txt · Last modified: 2019-05-18 14:58 by mail@awerner.myhome-server.de