Home / Linux / Debian / Teamspeak 3 Server autostart Skript – Debian / Ubuntu Linux
Teamspeak

Teamspeak 3 Server autostart Skript – Debian / Ubuntu Linux

Damit der Teamspeak 3 Server auch nach einem Reboot des Root Servers automatisch startet ist ein entsprechenden Skript notwendig, welches nicht direkt von Teamspeak mitgeliefert wird.

Wenn ihr auf eurem Linux Webserver einen Teamspeak Server installiert habt, empfehle ich euch ein Autostart Skript zu verwenden. Ich empfinde es als ziemlich lästig, den Teamspeak Server immer wieder manuell zu starten, deshalb verwende ich folgendes Start-Stop-Skript, welches diesen Vorgang automatisiert und vereinfacht.

Wenn ihr liebe einen Teamspeak Server mieten möchtet, dann fällt diese Aufgabe auf euren Hosting Anbieter.

Teamspeak 3 Start/Stop-Skript erstellen

/etc/init.d/teamspeak3 mit eurem Lieblingseditor erstellen und befüllen. Der Pfad und der User muss entsprechend angepasst werden. Da ich aus den Kommentaren entnommen habe, dass hier nicht jeder mit vi Erfahrungen hat solltet ihr vielleicht einen anderen Editor benutzen (joe oder nano). Kurze vi Anleitung: (mit „i“ kommt man in den Einfügemodus, da kann das Skript reinkopiert werden, mit „ESC : q“ wird der VI beendet und gespeichert)

[bash]vi /etc/init.d/teamspeak3[/bash]

Inhalt:

https://gist.github.com/SysADMINsLife/7319773

Skript ausführbar machen:

[bash]chmod 755 /etc/init.d/teamspeak3[/bash]

Teamspeak 3 Server automatisch starten

Das Skript ist soweit fertig und muss nun noch als Autostart definiert werden:

[bash]update-rc.d teamspeak3 defaults[/bash]

Beim nächsten Reboot wird der Teamspeak 3 Server nun automatisch gestartet.

Optionen des Skripts start/stop/restart/status:

Teamspeak Server starten:

[bash]/etc/init.d/teamspeak3 start[/bash]

Teamspeak Server stoppen:

[bash]/etc/init.d/teamspeak3 stop[/bash]

Teamspeak Server neu starten:

[bash]/etc/init.d/teamspeak3 restart[/bash]

Teamspeak Server Status anzeigen lassen:

[bash]/etc/init.d/teamspeak3 status[/bash]
4/5 - (5 votes)

Auch cool

Linux richtig anwenden: Tipps und Tricks für eine optimale Erfahrung

Die Kombination aus Spiele-Plattformen, und dem Betriebssystem Linux mag auf den ersten Blick ungewöhnlich erscheinen. …

50 Kommentare

  1. Hallo Patrick,

    Sehr gut erklärt und das Script sollte funktionieren, denke ich 🙂
    Gut gemacht, Danke!

    mfg Thomas

  2. Hi
    Ich habe das mit einen crontab gemacht
    Einfach mit
    crontab -u teamspeak3(user) -e
    und dort dann
    @reboot /home/teamspeak3/ts3server_startscript.sh start >/dev/null 2>&1 (pfad und user anpassen)

    Funtioniert bei mir Einwandfrei

    MfG Bruce

  3. Hallo,

    Wenn ich das Script so wie beschrieben erstelle, passiert bei mir nach nem Reboot gar nix.
    Der ts Server ist auch nach der Anleitung von hier installiert .
    Leider wird bei mir die .pid nicht gelöscht im Ts Verzeichnis.
    Hab ubuntu, danke.

    • Hallo Hans,

      was passiert denn wenn du direkt /etc/init.d/teamspeak start ausführst? Den Pfad und den User hast du angepasst?
      Bekommst du eine Fehlermeldung?

      Gruß
      Patrick

      • Hallo,

        das Script scheint bei mir nur teilweise zu funktionieren. leider Startet mein TS3 nicht, wenn ich meinen Vserver (Debian Wheezy 7.0)neu starte. Wenn ich es manuell mit dem befehl „/etc/init.d/teamspeak3 start“ eben starte stoppe oder wie auch immer funktioniert alles einwandfrei. Was kann ich noch versuchen?

    • Den selben Fall hatte ich auch und bei mir lag es daran, dass das Script mit „update-rc.d teamspeak defaults“ mit „S01teamspeak3 -> ../init.d/teamspeak3“ sehr früh beim neustart gestartet wurde. Ich habe das gelöst, indem ich dem Script im LSB Header noch eine Abhängigkeit von einem anderen Dienst mit höherer Startnummer in „/etc/rc2.d/“ gegeben habe. Da ich Teamspeak mit eine MySQL Datenbank nutze habe ich hier auf den MySQL Server warten lassen. Mein LSB Header sieht nun wie folgt aus:

      ### BEGIN INIT INFO
      # Provides: teamspeak3
      # Required-Start: $local_fs $network
      # Required-Stop: $local_fs $network
      # Should-Start: mysql
      # Should-Stop: mysql
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Description: Teamspeak 3 Server
      ### END INIT INFO

      Wie man sieht, habe ich den Header um „Should-Start“ und „Should-Stop“ erweitert.
      Nach erneutem Ausführen von „update-rc.d teamspeak defaults bekommt das Script mit „S19teamspeak3 -> ../init.d/teamspeak3“ in „/etc/rc2.d/“ mit S19 einen wesentlich späteren Platz in der Startreihenfolge. Seitdem startet der Teasmspeakserver auch ohne Probleme bei einem Hostrestart.

  4. Hei.
    Bei uns geht das leider nicht. Bekommen nur Fehlermeldungen. Schade

  5. Hallo,

    ich habe einen Debian 7.5 root Server mit Plesk 11.5.30.
    Wie hier beschrieben habe ich den TS Server installiert mit dem einen Unterschied das ich mit dem TS Server auf eine MySQL Datenbank zugreife.

    Ich benutze folgenden Befehl

    update-rc.d teamspeak3 defaults

    und bekomme diese Meldung zurück

    update-rc.d: using dependency based boot sequencing

    Wenn ich meinen Server reboote dann startet der TS Server nicht automatisch. (Ich hatte vorher einen Ubuntu Linux 12.04 LTS root vServer und da hat alles funktioniert)

    Was kann ich tun das auch auf diesem System der TS Server automatisch startet?

    Danke für die Hilfe.

    • Was passiert denn wenn das Skript per Hand aufgerufen wird?
      /etc/init.d/teamspeak start

      Gibt es Fehlermeldungen?

      Gruß
      Patrick

      • Wenn ich das Script per Hand aufrufe funktioniert alles der TS Server wird gestartet und es gibt auch keine Fehlermeldung

  6. Sehr gute Anleitung Patrick,

    vielen Dank! So habe ich das gerne.

    Nur eine Kleinigkeit:
    In der Anleitung wird die Datei „teamspeak3 „benannt. Im Abschnitt
    Optionen des Skripts start/stop/restart/status
    wird aber von der Datei teamspeak ohne 3 geredet. Wenn man die Datei mit 3 erstellt hat und damit die Optionen testet klappt auch alles.

  7. Danke für die Anleitung,

    leider bekomme ich ebenfalls folgende Meldung wie „Master“

    update-rc.d teamspeak3 defaults
    update-rc.d: using dependency based boot sequencing
    insserv: warning: script ‚teamspeak3‘ missing LSB tags and overrides
    insserv: warning: script ‚ctmilter_initd‘ missing LSB tags and overrides
    insserv: warning: script ‚kavehost‘ missing LSB tags and overrides

  8. Hallo,

    so an sich verstehe ich das Script(Wenn man es per Hand ausführt.

    Nur es wurde doch nicht genau gesagt das der Serverb eim start des Rootserver starten soll oder wie funktioniert das bitte?

    Ich möchte nicht nur alles kopieren sonder auch verstehen 😉

    Mfg

  9. Maik Vierkötter

    Super Script!
    Hatte Anfangs Ubuntu, jetzt aber wieder Debian.

    Klappt in beiden Distros, klasse Teil!

  10. super guide 😉

    evtl. addest du folgendes noch dazu:
    Ich hatte das Problem, dass der service beim reboot nicht gestartet ist. nach folgendem Command ging es dann super (Rechte fehlten wohl iwi):
    sudo chmod 755 /etc/init.d/teamspeak3

  11. Hi,

    wenn ich den Server über das Startscript starten lasse bekomme ich die Rückmeldung das der Server gestartet ist. Allerdings ist es nicht möglich zu connecten, dies geht nur wenn das Script über den Root-Terminal gestaret wird. Dies sollte ja laut der beiden Anleitungen nicht der Fall sein, wo liegt mein Fehler?

    Gruß

    • Hab das Problem gefunden, die Rechte wurden nicht komplett geändert. Wenn statt chown teamspeak3 /usr/local/teamspeak3
      chown teamspeak3 /usr/local/teamspeak3/* -R eingegeben wird geht es auch ohne Root

  12. Habe das script unter CentOS 6 Minimalsystem (64 Bit) eingebunden und auch den passenden befehl zum autostart gefunden „chkconfig teamspeak3 on“ aber wenn ich den status abfrage bekomme ich leider das:
    [root@s******** ~]# /etc/init.d/teamspeak3 status
    -bash: /etc/init.d/teamspeak3: /bin/sh^M: bad interpreter: No such file or directory

    hast du da eventuell eine hilfe für mich wie ich es trotzdem zum laufen bekomme?

    MFG ExtremO Manuel

    • Hallo, ich konnte es folgendermaßen lösen, dabei wurde das home-Verzeichnis samt Benutzernamen verwendet.

      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides: teamspeak3
      # Required-Start: $local_fs $network
      # Required-Stop: $local_fs $network
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Description: Teamspeak 3 Server
      ### END INIT INFO

      # INIT Script by http://www.SysADMINsLife.com
      ######################################
      # Customize values for your needs: „User“; „DIR“

      USER=“teamspeak3″
      DIR=“/home“
      ###### Teamspeak 3 server start/stop script ######
      case „$1“ in
      start)
      su $USER -c „${DIR}/${USER}/ts3server_startscript.sh start“
      ;;
      stop)
      su $USER -c „${DIR}/${USER}/ts3server_startscript.sh stop“
      ;;
      restart)
      su $USER -c „${DIR}/${USER}/ts3server_startscript.sh restart“
      ;;
      status)
      su $USER -c „${DIR}/${USER}/ts3server_startscript.sh status“
      ;;
      *)
      echo „Usage: {start|stop|restart|status}“ >&2
      exit 1
      ;;
      esac
      exit 0

  13. Gude, wie mein Vorredner läuft es bei mir auch unter CentOS6.
    Grundlegend funktioniert das Startscript auch, ich kann mit
    /etc/init.d/teamspeak3 start den Server starten, der wird dann auch als user und nicht als root ausgeführt und man kann ihn nutzen.
    Lediglich bei einem Neustart kommt bei status:
    Server seems to have died
    Wenn ich dann restart oder start manuell schreibe, wird er wieder gestartet…
    In welchem Runlevel sollte das Startscript denn ausgeführt werden?

    Gruß Marian

  14. Hey habe genau das gleiche Problem wie Manuel.. Hat evtl jemand eine Lösung?

  15. Ich habe es nun so gelöst, da das Script nicht funktioniert hat:

    USER=“teamspeak3″
    DIR=“TeamSpeakPfad“

    su $USER -c „${DIR}/ts3server_startscript.sh start“

  16. Echt tolle Erklärung Find ich echt klasse!!! 🙂

    Da das einwandfrei Funktioniert hab ich auch gleich für andere Programme das Skript umgesetzt!

    Was noch mit dazu geschrieben werden sollte wäre:
    Für Die die zb. die ts3server.ini nutzen oder im Startbefehl irgendwas Definiert haben können das auch sehr Praktisch lösen!

    2 Möglichkeiten:

    1. Im Skript bei „…/ts3server_startscript.sh restart“ einfach den Command anhängen! „${DIR}/ts3server_startscript.sh start/restart inifile=ts3server.ini“

    2. Oder besser einfach in der ts3server_startscript.sh (die Zeile 5) „COMMANDLINE_PARAMETERS=“${2}“ #add any command line parameters you want to pass here“ in „COMMANDLINE_PARAMETERS=“inifile=ts3server.ini“ #add any command line parameters you want to pass here“ abändern!

    Fertig! 🙂

    FreeFun ^^

  17. Hallo Community,
    Ich wollte fragen wie komme ich aus den skript porgramm raus das heißt wenn ich vi /etc/locale/teamspeak3 dor komme ich nicht raus.

    Danke im voraus

    Erick Hoffmann

  18. Hallo Patrick,

    erst einmal vielen Dank das Du solche Tutorials ins Netz setzt!!!

    Mit Deiner Hilfe habe ich den TS3Server sehr leicht installieren können ohne sonderlich Ahnung von Linux zu haben.

    Jetzt wollte ich das autostart Skript hinterher schießen.

    Zwar musste ich mich für den „vi“ nochmal extra belesen, aber habe alles soweit hinbekommen. Habe das Skript lediglich anders benannt, aber diese Umbenennung ist durchgehend.

    Nur startet TS3 leider nicht automatisch nach einem reboot.

    Wenn ich dann manuell eingebe:

    /etc/init.d/ts3 start

    bekomme ich folgende Fehlermeldung:

    ts3server.pid found, but no server running. Possibly your previously started server crashed
    Please view the logfile for details.
    rm: remove write-protected regular file `ts3server.pid‘?

    Wenn ich dann ‚rm‘ eingebe startet der Server.

    Was habe ich übersehen?

    Würde mich freuen von Dir zu hören.

    MfG
    Timo

  19. Skript hinzugefügt und geupdatet – habe auch das selbe problem mit der pid und folgendes problem unten? Woran liegt das?
    root@s18241477:~# su /etc/init.d/teamspeak3 start
    No passwd entry for user ‚/etc/init.d/teamspeak3‘

  20. Super!

    Eine Frage noch, wenn ich das Plugin wieder löschen möchte, dann muss ich doch nur die erstellte Datei löschen, oder: „/etc/init.d/teamspeak3“

    Wie entferne ich den Autostart-Eintrag und die restlichen eingefügten CMD’s?

    lg Michael

  21. Hallo Leute, also was das Linux angeht, bin ich ein totaler Neuling, aber ich hab es geschaft mir einen Ubuntu Linux 14.10 auf einem alten Rechner zu installieren und zum laufen zu bringen. Desweiteren nutze ich ihn jetzt als TS3 Server. Meine Bitte jetzt an euch ist, ob mir nicht auch jemand so einen Skript schreiben könnte?

    Bei mir ist der USER *teamspeak3* und dadrauf befindet sich sofort der Ordner *teamspeak3-server_linux-x86*.

    vielleicht hilft es auch, dass ich mit WinSCP und Putty zugrif drauf habe.

    • Hallo Mangulus,

      Das Skript ist ja soweit fertig, es müssen nur die 2 Variablen angepasst werden. Pfad und User.

      Der User müsste bei dir ja soweit passen also brauchst du nur bei DIR einfach den richtigen Pfad reinschreiben. Ich vermute das sollte der richtige Pfad sein:

      /home/teamspeak3/teamspeak3-server_linux-x86

      Gruß
      Patrick

      • Patrik, danke für diesen super Skript. Hab den jetzt auf mein TS3 Server angepast. Erst hatte ich probleme mit dem aktivieren des Skripts, aber nach einem Neustart ging es wie von alleine. Danach habe ich nur noch den Skript als Autostart definirt und nach einem weiteren Neustart ist der TS3 Server nach paar Minuten wieder on gegangen.

        Ich danke dir.

        Gruß
        Mangulus

  22. Danke funktioniert super auf meinem Ubuntu 14.04 Server!

  23. Hallo,

    Ich habe das Script wie oben übernommen und angepasst,
    wenn ich den Root Server Neustarte oder auch über den Befehl:
    etc/init.d/ts3server start starte, sehe ich nur kurz einen Teil des TS3-Servers. In Putty kommt folgende Fehlermeldung:

    |CRITICAL|DatabaseQuery | | Assertion „error == ERROR_ok“ failed at server/serverlib/database/db_database.cpp:113;

    und die Verbindung zum TS3-Server bricht wieder ab…

    Hat jemand einen Lösungsvorschlag??

    Vielen Dank schonmal im Voraus

    Unskinner

  24. Hallo,

    erst einmal Danke für das schöne Script.
    Ich habe Deine Anleitung genaustens befolgt, lediglich

    chown ts3 home/ts3/* -R zusätzlich verwendet.

    Nun habe ich das folgende Problem und komme einfach nicht weiter;

    Bei der Eingabe von ; update-rc.d teamspeak3 defaults

    bekomme ich die folgende Ausgabe ;

    update-rc.d: using dependency based boot sequencing
    insserv: warning: script ‚kavehost‘ missing LSB tags and overrides

    Frage :
    Was ist kavehost ,- Wo bekomme ich das her und wie binde ich es in der LSB ein, so dass es hinterher auch alles funktioniert ?

    Mein vollständiges Script sieht so aus ;

    #!/bin/sh
    ### BEGIN INIT INFO
    # Provides: teamspeak3
    # Required-Start: $local_fs $network
    # Required-Stop: $local_fs $network
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Description: Teamspeak 3 Server
    ### END INIT INFO

    # INIT Script by http://www.SysADMINsLife.com
    ######################################
    # Customize values for your needs: „User“; „DIR“

    USER=“ts3″
    DIR=“/home/ts3/teamspeak3-server_linux-amd64″

    ###### Teamspeak 3 server start/stop script ######

    case „$1“ in
    start)
    su $USER -c „${DIR}/ts3server_startscript.sh start“
    ;;
    stop)
    su $USER -c „${DIR}/ts3server_startscript.sh stop“
    ;;
    restart)
    su $USER -c „${DIR}/ts3server_startscript.sh restart“
    ;;
    status)
    su $USER -c „${DIR}/ts3server_startscript.sh status“
    ;;
    *)
    echo „Usage: {start|stop|restart|status}“ >&2
    exit 1
    ;;
    esac
    exit 0

    In der ts3server_start.sh habe ich die Zeile 5 wie folgt geändert, hat bisher nie Probleme gemacht ;

    COMMANDLINE_PARAMETERS=“inifile=ts3server.ini“ #add any command line parameters you want to pass here

    In der Reihenfolge bei /etc/rc2.d steht teamspeak3 auf 01, auch das soll noch geändert werden, gibt es dazu einen Weg- außer es wie oben beschrieben nach msql starten zu lassen ?

    Bitte Helft mir, bin mit meinem Latein am Ende !!

  25. hallo ich habe ubuntu und den ts3 server nur geht der auto start nicht und wenn ich /etc/init.d/teamspeak3 start eingebe bekomm ich die meldung No passwd entry for user ‚teamspeak3’der user hat ein password wie gebe ich es ein das er darauf dann startet

  26. Bei mir erscheint im letzten Akt folgende Fehlerausgabe:

    warning: script ‚kavehost‘ missing LSB tags and overrides

    Woran könnte es liegen?

  27. Hallo, habe es eben auch mal versucht aber der Teamspeak Server will nicht starten!

    Dann habe ich
    /etc/init.d/teamspeak sart
    eingegeben und es kam:
    /bin/sh: 0: Can’t open

  28. Hallo!

    Es funktioniert bei mir einwandfrei. Ich möchte es aber so einstellen, dass ein Kumpel von mir auch mit seinem benutzer den Server starten kann, wenn ich aber mit seinem benutzer einen befehl davon eingebe, zb „/etc/init.d/teamspeak3 restart“ möchte das programm ein Passwort wissen. egal welches ich eingebe, es ist falsch. Ich habe als Benutzer in der Datei „root“ genommen, also mein account. wie kann ich dort dann einen zweiten hinzufügen so dass es klappt?

  29. #!/bin/sh
    ### BEGIN INIT INFO
    # Provides: teamspeak3
    # Required-Start: $local_fs $network
    # Required-Stop: $local_fs $network
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: Teamspeak 3 Server
    ### END INIT INFO

    USER=“teamspeak“
    DIR=“/usr/local/bin/teamspeak3-server_linux-amd64″

    ###### Teamspeak 3 server start/stop script ######

    case „$1“ in
    start)
    su -c „${DIR}/ts3server_startscript.sh start“ -s /bin/bash $USER
    ;;
    stop)
    su -c „${DIR}/ts3server_startscript.sh stop“ -s /bin/bash $USER
    ;;
    restart)
    su -c „${DIR}/ts3server_startscript.sh restart“ -s /bin/bash $USER
    ;;
    status)
    su -c „${DIR}/ts3server_startscript.sh status“ -s /bin/bash $USER
    ;;
    *)
    echo „Usage: {start|stop|restart|status}“ >&2
    exit 1
    ;;
    esac
    exit 0

    ——————————————————————————–

    works for me on
    Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-51-generic x86_64)

  30. Wie kann man diesen Script so erweitern, dass erst tsdns, und dann erst ts3 automatisch gestartet wird?

  31. Hallo tobi,

    mein Tip: installiere dir „Webmin“. Danach kannst du dir über dein Internetbrowser als root über Webmin die Benutzer und Gruppen verwalten, und somit eine Gruppe erstellen, die dein Teamspeak steuern darf. Füge dann jeden Benutzer die erstellte Gruppe als Sekundäre Gruppe ein, fertig. TeamSpeak3 Start-Stop-Script sollte dann auch die erstellte Gruppe zugewiesen werden (PuTTY: chown teamspeak:erstellte_gruppe /etc/init.d/teamspeak3) und die Gruppe muss die Ausführ-Rechte haben (z.B. mit PuTTY: chmod 754 /etc/init.d/teamspeak3)

  32. bei mir kommt:

    root@vps:~# /etc/init.d/teamspeak3 restart
    Stopping the TeamSpeak 3 servercat: ts3server.pid: Permission denied
    cat: ts3server.pid: Permission denied
    done
    rm: remove write-protected regular file ‚ts3server.pid‘?

    oder

    root@vps:~# /etc/init.d/teamspeak3 restart
    Stopping the TeamSpeak 3 serverdone
    rm: remove write-protected regular file ‚ts3server.pid‘?

  33. Habe alles so gemacht aber er startet nicht neu per hand kann ich ihn aber starten bitte um hilfe

  34. Hi
    Ich habe das Script soweit angelegt.
    Nur beim anlegen als Autostart bekomme ich folgende Fehlermeldung:

    [root@]# update-rc.d teamspeak3 defaults
    -bash: update-rc.d: command not found

    Als OS ist CentOS release 5.11 (Final) installiert.

    Kannst du mir hir helfen das richtig anzupassen?

    Gruss Feichti

  35. Gute Anleitung, jedoch habe ich ein Problem

    Der Teamspeak startet bei mir nicht bei neustart des Servers

    Daraufhin habe ich versucht die Skript Optionen zu nutzen mit „/etc/init.d/teamspeak3 start“

    Da wird mir gesagt ich habe keine Berechtigung trotz root und chmod.