TS lässt sich nicht manuell stoppen

racer

Registered User
Hi @ all,

ich habe im Moment Teamspeak unter Linux Debian 4.0 laufen.

Das Startscript (@reboot /home/teamspeak/server_linux) steht in der Crontab des Users Teamspeak.
Der TeamspeakServer Startet auch ohne Probleme beim reboot.

Leider kann ich den TeamspeakServer wenn er in der Crontab steht nicht mit dem Befehl (./teamspeak2-server_startscript stop) stoppen.

Es kommt folgende Meldung:
tsserver2.pid is missing, no started server ?

Wenn ich den Befehl aus der Crontab lösche, kann ich ihn Manuell Starten, Stoppen und Rebooten. Sonst wie erwähnt nicht.

Hoffe sehr auf Antworten!

mfg
racer
 
Poste mal den Inhalt von server_linux und dazu den Inhalt von teamspeak2_... Ich schätze, dass server_linux kein PID File anlegt.
 
Hallo racer,

ist leider ne Weile her dass ich mich damit rumgeschlagen habe, aber häng mal an ein --pid=/pfad/ts2.pid an dein server_linux an.

Alternativ könntest du auch init.d Script verwenden (gibts im TS Forum genug), und nen Link im Standardrunevel (unter Debian 2) anlegen. Nach nem Reboot startet TS genauso und zusätzlich kannst du auch per start/stop/status... den Server starten/stoppen/...

Lg,
Marco

Nachtrag: Habe gerade nochmal gecheckt wie's bei mir lief: /server_linux -PID=./tss2.pid
 
Last edited by a moderator:
Vielen Dank für die schnelle Antworten!

@marco: Dein Befehl klappt leider auch nicht :-(. Wie schon gesagt der TS Server startet beim reboot jedoch kann ich ihn nicht manuell stoppen und rebooten.

@marneus: Die server_linux datei besteht nur aus Cods ;-).

mfg
racer
 
Last edited by a moderator:
Hallo racer,

die Stop Funktion des Startscriptes funktioniert nur wenn der Teamspeak auch damit gestartet wurde.

Wenn du den Teamspeak Stoppen willst such dir einfach den entsprechenden Prozess und kille ihn.

Code:
ps ax | grep server_linux

Du kannst auch den Teamspeak Server mit dem Parameter --pid starten und das Startscript anpassen.
 
Wie "einfügen"? ps listet alle laufenden Prozesse und grep server_linux beschränkt diese Auflistung auf den TS Prozess.

Das musst Du selber auf der Console machen - da ist nirgendwo was einzufügen. Alternative ist eben das Anpassen des Startskriptes, wovon ich allerdings mangels Erfahrung mit Teamspeak keine Ahnung habe. So schwer kann das aber gar nicht sein. Vllt. hat bibabu noch was brauchbares rumliegen.
 
Hallo!

Ich habe hier in der Tat ein eigene Startscript für Teamspeak.
Dafür benötigst du Sudo! (apt-get install sudo)

1. Erstelle folgende Datei: /etc/init.d/teamspeak mit folgendem Inhalt.

Code:
#!/bin/bash

DIR="/home/teamspeak"
USER="teamspeak"

INI="${DIR}/server.ini"
LOG="${DIR}/server.log"
PID="${DIR}/server.pid"
DB="${DIR}/server.dbs"

case "$1" in
  start)
	sudo -u ${USER} ${DIR}/server_linux -ini=${INI} -log=${LOG} -db=${DB} -pid=${PID}
	;;
  stop)
	kill `cat ${PID}`
	;;
  status)
  	if [ -e ${PID} ]
		then echo "teamspeak ${ID} seems to be running with pid: `cat $PID`."
		else echo "teamspeak ${ID} is not running."
	fi
  	;;
  *)
	echo "Usage: $0 {start|stop|status)" >&2
	exit 3
	;;
esac

DIR muss auf das Verzeichniss in dem Teamspeak Installiert ist zeigen
USER muss der Benutzer sein unter dem der Server laufen soll.

Um das ganze jetzt auch noch Automatisch zu Booten must du folgendes tun.
Die Datei Teamspeak zu den Runlevels hinzufügen.

Code:
update-rc.d teamspeak start 20 2 3 4 5 . stop 20 0 1 6 .

Das wars auch schon. Jetzt startet dein TS immer schön beim Booten.

Starten / Stoppen kannst du per /etc/init.d/teamspeak start, stop, status
 
Last edited by a moderator:
WOW geht das hier schnell!
Werde es gleich mal ausprobieren und bescheidsagen, ob es klappt!

mfg
racer
 
Hi,
Sudu wurde installiert und die Datei habe ich auch erstellt.
Leider kommt beim Runlevelbefehl folgende Meldung:

Code:
server:~# update-rc.d /teamspeak start 20 2 3 4 5 . stop 20 0 1 6 .
 Adding system startup for /etc/init.d//teamspeak ...
   /etc/rc0.d/K20/teamspeak -> ../init.d//teamspeak
update-rc.d: symlink: Datei oder Verzeichnis nicht gefunden

Beim reboot wird der TS nicht gestartet kann ihn aber manuell starten und stoppen.

mfg
racer
 
Hi,
mein Befehl steht in der ersten Zeile.
Den Rest spuckt der Sever aus. Hab oben von Teamspeak nur 1 Slash.

mfg
racer
 
Ja klar!
Aber das "/etc/init.d" wird bei mir automtaisch davor gesetzt.

Hier sieht man es nochmal:

server:~# update-rc.d /etc/init.d/teamspeak start 20 2 3 4 5 . stop 20 0 1 6 .
update-rc.d: /etc/init.d//etc/init.d/teamspeak: file does not exist


mfg
racer
 
Last edited by a moderator:
Das / im Runlevelupdatebefehl muss raus:

update-rc.d teamspeak start 20 2 3 4 5 . stop 20 0 1 6 .

Probier's mal so.
 
So, es klappt.
Loxter hat die Lösung auch gefunden.

Eine Frage hätte ich noch, für was sind diese Zahlen? "start 20 2 3 4 5 . stop 20 0 1 6 ."


mfg
racer
 
Last edited by a moderator:
Das sind die Runlevels für die das Startscript gillt:

start 20 2 3 4 5 bedeutet, dass das Scipt beim Eintreten in die Runlevel 2,3,4,5 ausgeführt wird.

stop 20 0 1 6 sorgt dafür, dass das scipt beim herunterfahren (Runlevel 1 und 6) der server wieder beendet wird.
 
@ Loxter, danke! Das hatte ich nicht bedacht.

Die 20 steht im übrigen nur für die Sortierung.

Beispiel:

Programm XY hat die Nummer 20
Programm XZ hat die Nummer 21

Programm XY wird vor XZ gestartet.
 
Last edited by a moderator:
Back
Top