Startscript funtkioniert nicht (teamspeak3 server x86)

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Alfex
Beiträge: 16
Registriert: 02.09.2015 19:53:38

Startscript funtkioniert nicht (teamspeak3 server x86)

Beitrag von Alfex » 02.09.2015 20:14:30

Hallo,

kurz vorweg, ich bin ziemlicher Linux-Neuling, hab natürlich schon immer mal mit Live-CDs und "klicki-bunti"-Oberflächen wie zB Gparted gearbeitet aber da ich evtl bald mehr mit Linux arbeiten muss hab ich spaßeshalber Debian 8.1.0 x86 auf einem alten PC installiert und tüftele gerade so nebenbei daran rum. (x86 weil der PC leider 64 bit nicht kann)

Ich hab mich schon durch diverse Anleitungen durchgelesen aber es kann durchaus sein dass ich total simple und für andere selbstverständliche Dinge vergessen habe oder einfach nicht kenne. Daher also auch mal abwegige und banale Dinge als Lösung vorschlagen :D

Und zwar hab ich einen ts3 server installiert, der läuft auch einwandfrei wenn ich ihn von Hand starte. Ich wollte dann aber dass er von alleine startet sobald der PC hochfährt. Auch dafür gibts tausende Anleitungen aber bei mir wills nicht klappen.

So sieht mein startscript aus:

Code: Alles auswählen

!/bin/sh
### BEGIN INIT INFO
# Provides:             teamspeak
# 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 www.SysADMINsLife.com
######################################
# Customize values for your needs: "User"; "DIR"

USER="ts3"
DIR="/usr/local/ts3/teamspeak3-server_linux-x86"

###### 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
Und so sieht es aus wenn ich den Status abfrage nachdem Debian hochgefahren ist.

Code: Alles auswählen

root@Debian-PC:/home/alex# service teamspeak status
● teamspeak.service - LSB: Teamspeak 3 Server
   Loaded: loaded (/etc/init.d/teamspeak)
   Active: failed (Result: exit-code) since Mi 2015-09-02 19:42:10 CEST; 1min 13s ago
  Process: 396 ExecStart=/etc/init.d/teamspeak start (code=exited, status=203/EXEC)

Sep 02 19:42:00 Debian-PC systemd[396]: Failed at step EXEC spawning /etc/init.d/teamspeak: No such file or directory
Sep 02 19:42:10 Debian-PC systemd[1]: teamspeak.service: control process exited, code=exited status=203
Sep 02 19:42:10 Debian-PC systemd[1]: Failed to start LSB: Teamspeak 3 Server.
Sep 02 19:42:10 Debian-PC systemd[1]: Unit teamspeak.service entered failed state.
Vorweg hab ich schon einen langen Leidensweg hinter mir da ich zu Anfang scheinbar veraltete Anleitungen befolgt habe in denen der obere Teil in meinem startscript (BEGIN INIT INFO bis END INIT INFO) fehlte, da ging noch überhaupt nichts. Jetzt sieht man dass scheinbar versucht wird der Server zu starten aber irgendwie gehts nicht. Ich werd aus der Fehlermeldung "Failed at step EXEC spawning /etc/init.d/teamspeak: No such file or directory" aber nicht schlau. Irgendetwas scheint zu fehlen ?

Dem Benutzer "ts3" hab ich als Besitzer vom Serverordner extra eingetragen da ich da zuerst mich und teils root als Besitzer drin hatte. Die Rechte hab ich auch angepasst im Serverordner mit "775" also schreib/lese und Ausführrechte für Bsitzer und Gruppen und Lese/Ausführrechte für andere. Vorher gabs nämlich Probleme dass der ts3-user die datei "ts3server.pid" nicht löschen konnte die manchmal im ordner verbeibt wenn der Server apruopt runterfährt oder crasht. Hab am Anfang (also vor ein paar Tagen :lol: ) halt auch noch weniger Durchblick gehabt was das Rechtesystem angeht. (was nicht heißen soll dass ich jetzt alles kapiert hab)

Wenn ich als user "ts3" den Server starte gehts jedenfalls einwandfrei (./ts3server_startscript.sh start im serverordner ausführen)
Hab auch eine dyndns-Adresse eingerichtet und die Ports im Router freigegeben sodass ich auch von außerhalb schon Besuch auf meinem TS-Server hatte und alles einwandfrei funktioniert hat.

Ich verzweifle aber am scheinbar einfachsten Teil, dem strartscript :facepalm:


Hat jemand eine Idee was ich vergessen oder falsch gemacht habe könnte?

Alfex
Beiträge: 16
Registriert: 02.09.2015 19:53:38

Re: Startscript funtkioniert nicht (teamspeak3 server x86)

Beitrag von Alfex » 02.09.2015 22:08:38

Ich glaub ich hab den Fehler gefunden.

Da ich wie gesagt vorher schon einige Hürden überwinden musste habe ich mir da leider einen anderen Fehler eingebaut der jetzt ausschlaggebend war.

Drauf gekommen bin ich erst als ich von Hand probiert habe den ts3 server nicht direkt über die datei "ts3server_startscript.sh" sondern mittels meinem obenstehenden startscript im Verzeichnis /etc/init.d/ zu starten.
Dabei kommt nämlich folgende Fehlermeldung die mich auf die Richtige Spur gebracht hat:

Code: Alles auswählen

bash: ./teamspeak: /bin/sh^M: Defekter Interpreter: Datei oder Verzeichnis nicht gefunden
Habe nach dieser Meldung gegooglet, die Ursache liegt darin dass diese Datei unter Windows erstellt wurde und dabei Zeilenumbrüche anders gespeichert werden als unter Unixsystemen.
Da ich dieses Scripot oftmals bearbeitet und ausgetauscht habe hab ich zwischendurch auch mal die Datei von meinem Windows PC rüberkopiert. :oops:

Auch beim öffnen der datei mit "nano teamspeak" war zwar kein Unterschied zu erkennen aber trotzdem muss es daran gelegen haben.
Mit dem Tool "DOS2UNIX" hab ich die Datei einfach umgewandelt und schon läuft alles.

Als ich die Datei vor ein paar Tagen noch im richtigen Format hatte stand halt nicht das richtige drin, jetzt war der Inhalt zwar richtig aber der Fehler lag am Format... Den einen Fehler behoben und den nächsten also eingebaut. Da macht man sich selber das Leben schwer... :facepalm: :D

###Nachtrag:
ich hätte auch einfach in nano vorm speichern mit "ALT+D" das Format von DOS auf Unix stellen können... dos2unix ist nicht unbedingt nötig. Hab ich eben erst gelesen, hätt ich das gewusst hätt ich das sicherhaltshalber schon länst gemacht. :roll:

Antworten