Autostart (Init-Script) für Teamspeak3

Um Teamspeak3 automatisch zu starten benötigt man ein Init-Script oder ein Systemd Unit-file.

Da Teamspeak3 über das mitgelieferte Init-Script immer im Kontext des Users gestartet wird der das Script aufruft, ist es nicht geeignet um direkt beim Booten ausgeführt zu werden, da der User in diesem Fall root ist.

Unter Debian/Ubuntu kann die Lösung so aussehen.

/etc/init.d/teamspeak3

#!/bin/bash

### BEGIN INIT INFO
# Provides:             teamspeak3
# Default-Start:        2 3 4 5
# Default-Stop:         1
# Required-Start:       $remote_fs
# Required-Stop:        $remote_fs
# Short-Description:    Teamspeak3
### END INIT INFO

DAEMON="ts3server"
USER="tss"
DAEMON_PATH="/home/tss/teamspeak3-server_linux-amd64"
PIDFILE="/run/ts3server.pid"
NICE="-10"
OPTIONS="query_ip=127.0.0.1 query_ssh_ip=127.0.0.1 filetransfer_ip=127.0.0.1 createinifile=1"

. /lib/lsb/init-functions

start() {
  log_begin_msg "Starting Teamspeak server:" "ts3server"
  if start-stop-daemon -S -o -m -q -b -N $NICE -d $DAEMON_PATH -p $PIDFILE -x $DAEMON -u $USER -c $USER -- $OPTIONS; then
    log_end_msg 0
  else
    log_end_msg 1
    exit 1
  fi
}

stop() {
  log_begin_msg "Stopping Teamspeak server:" "ts3server"
  if start-stop-daemon -K --remove-pidfile -o -q -d $DAEMON_PATH -p $PIDFILE -x $DAEMON -u $USER; then
    log_end_msg 0
  else
    log_end_msg 1
    exit 1
  fi
}

case "$1" in
  start)
      start
    ;;
  stop)
      stop
    ;;
  restart|force-reload|reload)
      stop
      start
    ;;
  *)
      echo "Usage: /etc/init.d/teamspeak3 {start|stop|restart}" >&2
      exit 1
    ;;
esac

exit 0

Nun noch die Variablen anpassen und den Autostart aktivieren

update-rc.d teamspeak3 defaults 20

Schreibe einen Kommentar