Forum EUserv
VPS/vServer - virtual private server => vServer - HowTo's => Thema gestartet von: AnNiPaTh am 05.Januar 2011, 03:14:34
-
Hallo zusammen,
ich habe ein Problem, ich verzweifle an dem "Autostart" für mein TS3.
Google brachte mir noch keine brauchbare Lösung, hier fand ich auch nichts...
So langsam verzweifle ich >_<
Ich hoffe mir kann da jemand helfen :)
Mfg
-
Etwas mehr Infos wären nicht schlecht. Welches Linux setzt du ein? Vielleicht Debian? Normalerweise sollte es reichen /etc/init.d/teamspeak-server (oder so ähnlich, nutze sowas nicht) in dem Runlevel zu berechtigen?
-
oder starte es doch wie ich einfach von hand das du sofort merkst wenn der server mal ungewollt rebootet.
kannst dir ja in das userhome eine start.sh scripten mit der du per sh start.sh den ts server starten kannst
aber is geschmacks sache ich z.b. starte alles "von hand" weil es einfach gewohnheit ist
-
das Startscript "ts3server_startscript.sh" ist beim TS3 normalerweise dabei.
Das in die init.d einzu tragen ist aber gar nicht gut. Der TS3 Server sollte NICHT mit ROOT Rechten laufen (das fängt das Script sehr schön ab).
Wenn, dann musst Du Dir ein Script schreiben welches das Startscript als nicht-root startet.
Ich starte den aber auch "von Hand". ;)
-
Evtl. kannst du es in /etc/rc.local eintragen. Mit
su <username> -c /pfad/zum/programm
wird es dann evtl. als <username> gestartet. Nicht probiert.
-
Hier mal mein vorschlag http://addons.teamspeak.com/directory/tools/administration/An-easy-TS3-Admin-app-for-Windows%C2%AE.html
is recht leicht zu bedienen so kann man recht leicht die slots aufteilen zb nee ts nur für neen raid tag fertig machen
-
Versuch es mal damit http://utgclan.de/forum/index.php?topic=1831.0 (http://utgclan.de/forum/index.php?topic=1831.0)
Ich habe es damit auf meinem Server so eingerichtet und es funktzioniert. Mit einem seperaten User so das es ohne den Root user geht.
-
Wow, danke für die vielen antworten, hatte den Thread schon fast vergessen, bis gerade der server wieder Down ging......
Also ich nutze Debian 5.0r5 minimal.
Ich werde jetzt mal testen, was mir hier so angeboten wurde :)
Danke schonmal, gleich kommt ne Rückmeldung. ^^
ps. server starte ich ja jetzt auch von hand, aber soooo oft wie der server down geht, wirds langsam lästig ^^.
-
Hi,
also hatte das gleiche Problem wie du, ich bin hingegangen und bin in das entpackte Verzeichnis gegangen in meinem Fall (/home/tsserver/teamspeak3-server_linux-x86). Dort findest du ja die ts3server_startscript.sh die führst du einmal aus um den Token für deinen Serveradmin zu bekommen. Loggst dich auf deinen TS ein und trägst den Token ein. Im Anschluss brichst du das Script mit STRG+C ab.
Dann schreibst du ./startscript_ts3_linux.sh start
und nun solltest du weiterhin in der Konsole sein. Nun kannst du mittels top Befehl sehen das dort der Prozess ts3server_linux läuft.
Ich habe die TS3 Version "Server x86 3.0.0-beta30" installiert.
-
Also ich habe das nicht getestet, aber sollte möglich sein. Ihr müsst eine start.sh datei in /etc/init.d/ anlegen die dann bei jedem start ausgeführt wird. Darin enthalen müsste sein:
#!/bin/bash
cd /root/teamspeak3/
screen -A -m -d -S nutzername(z.b ts3) ./ts3server_minimal_runscript.sh
So startet Teamspeak als user xxx und in einer screen bei jedem system boot.
-
@reboot *teamspeakuser* /home/teamspeakuser$/teamspeak3/ts3server_startscript.sh start
in die crontab eintragen.
-
Hmm, i.wie will garnichts bei mir funzen >_<
Ich glaub ich bin zu blöd xDD
oder ich hab doch i.wo nen Fehler eingebaut...
Mal schauen, werd mich jetzt mal dran setzten und nochmal versuchen.
Danke an alle für die Zahlreichen antworten. ;)
€dit:
Hab nun versucht diese Idee umzustetzen -> http://utgclan.de/forum/index.php?topic=1831.0 (http://utgclan.de/forum/index.php?topic=1831.0)
Er sagt mir das er startet, jedoch kann ich nicht Connecten.
Hab das Script soweit angepasst, bin mir nur nicht sicher ob ich was übersehen habe.
#!/bin/sh
#
# Shellscript, startet einen TeamSpeakServer im
# Kontext des angegebenen Benutzers.
#
# UTG|SePHTaN (sephatan@utgclan.de)
# dank an FearFactor für die Vorlage
# ============================================
#
# Voraussetzungen:
#
# - Ein installierter/entpackter TeamSpeakServer
# - der Benutzer in dessen Kontext der Server laufen soll
# muss existieren und muss volle Rechte auf den TSS-Ordner und Dateien
# haben. (aktuellen Status mit "ls -l" anzeigen)
# Siehe bei Bedarf die Manpages von chown (Besitzer ändern)
# Beispiel: "chown user:gruppe datei"
# Rechte ändert man mit "chmod"
# Beispiel: "chmod 770 datei"
# - Die Variablen m�ssen Deinem System angepasst werden.
#
# Das Script am Besten als ts3d im Ordner /etc/init.d erstellen,
# und ausführbar machen (z.B. mit "chmod 755 ts3d")
#
# damit der Server von jedem Verzeichnis aus gestartet und beendet werden
# kann, erstellt man am Besten einen harten link ins Verzeichnis /usr/bin,
#
# Beispiel "ln Pfad-zum-script /usr/bin" :
# Beispiel "ln /etc/init.d/ts3d /usr/bin"
#
# Soll der Server beim Hochfahren automatisch starten,
# erstelle noch einen Link im init.d-Verzeichnis
# (kann je nach Distribution abweichen!)
#
# und dann noch einen symbolischen Link ins Verzeichnis
# des richtigen Runlevels erstellen
# (den Standardrunlevel am Besten in /etc/inittab nachsehen):
#
# Beispiel Debian "ln -s /etc/init.d/ts3d /etc/rc2.d/S99ts3d"
# Beispiel SuSE "ln -s /etc/init.d/ts3d /etc/rc.d/rc2.d/S99ts3d"
#
# Um den Server manuell zu starten/stoppen verwende:
# "ts3d start"
# "ts3d stop"
#
# "ts3d status" zeigt alle laufenden TSS-Prozesse
# und die Adminpasswörter an! (ausgelesen aus server.log)
### BEGIN INIT INFO
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
### END INIT INFO
set -e
DAEMON_USER="root"
DESC="teamspeak3-server"
DIR=/home/ts3/teamspeak3-server_linux-x86
BIN=ts3server_startscript.sh
DAEMON=$DIR/$BIN
NAME="Ts3server"
PATH=$DIR:/bin:/usr/bin:/sbin:/usr/sbin
PIDFILE=/home/ts3/teamspeak3-server_linux-x86/$NAME.pid
PARAMS=inifile=$DIR/ts3server.ini
export LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting TS server: $NAME "
[ -d /var/run/$NAME ] || mkdir -p /var/run/$NAME
start-stop-daemon --start --background --chdir $DIR --chuid $DAEMON_USER -m --pidfile $PIDFILE --exec $DAEMON -- $PARAMS
echo "."
;;
stop)
echo -n "Stopping TS server: $NAME "
start-stop-daemon --stop --pidfile $PIDFILE --oknodo --exec $DAEMON
rm -f $PIDFILE
echo "."
;;
restart)
echo -n "Restarting TS server: $NAME "
start-stop-daemon --stop --pidfile $PIDFILE --oknodo --exec $DAEMON
rm -f $PIDFILE
start-stop-daemon --start --background --chdir $DIR --chuid $DAEMON_USER -m --pidfile $PIDFILE --exec $DAEMON -- $PARAMS
echo "."
;;
reload|force-reload)
echo "Reloading $NAME configuration files"
start-stop-daemon --stop --pidfile $PIDFILE --signal 1 --exec $DAEMON -- $PARAMS
echo "."
;;
status)
[ -e $PIDFILE ] && echo "$NAME seems to be running with pid: `cat $PIDFILE`." \
|| echo "$NAME is not running."
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart|reload}"
exit 1
;;
esac
exit 0
Mein ts3 ist in -> /home/ts3/teamspeak3-server_linux-x86
Falls ich i.was vergessen hab, lasst es mich bitte wissen.
So langsam verzweifel ich doch wirklich :/
(Ich starte bewusst als root, da es nur zzt. nur Testweise ist, sobald alles klappt, bau ich um)
-
Wie ich im post über deinem schon geschrieben habe reicht exakt diese eine Zeile in der crontab-Datei.
Für *teamspeakuser* setzt du den user ein mit dem du den ts-server starten willst und der Pfad danach ist halt der Pfad zum mitgelieferten startscript der TS-Installation. Vorzugsweise und der Einfachheit halber (wg. Rechten) befindet sich diese Installation unterhalb des home$ des users mit dem du den ts-server starten willst. Wenn ich deinen post richtig deute müsst es dann bei dir exakt so lauten:
@reboot ts3 /home/ts3/ts3server_startscript.sh start
Diese Zeile in die crontab eintragen und fertig. Der Server startet dann auch mit den Userrechten des ts3-Users.
-
Hab nun alles neu aufgesetzt.
TS3 User mit vollen rechten im TS3 ordner.
TS3 von hand starten (per User) klappt, ohne Probleme.
Habs in die Crontab eingetragen (etc -> crontab).
Server neu gestartet.
TS3 bleibt Down.
(Hab noch nie mit der Crontab gearbeitet, daher bin ich gerade nicht so sicher ob ich alles richtig hab.) :D
Was mache ich denn Falsch? >_<
-
Hmm, schwer zu sagen.
Das hört sich erst einmal richtig an, aber da ich 100% garantiere, daß das so läuft (bei mir ist es so), muss also zwangsläufig irgendetwas falsch sein. /etc/crontab stimmt aber schon mal. Die Rechte sind auch ok nehme ich mal an, sonst würde er ja auch nicht manuell starten. Die einzige Möglichkeit ist, daß dieser Pfad bei dir anders lautet:
/home/ts3/ts3server_startscript.sh
Da müsste im Normalfall noch ein "teamspeak3"-Ordner drin sein, weil:
Das ts3server_startscript.sh -Script wird bei der ts3-"Installation", d.h. beim entpacken, mitgeliefert. Es ist halt in dem Pfad wo du den tarball entpackt hast. Und der enthält durch das entpacken (zwangsläufig, sofern du das nicht modifiziert hast) den term "teamspeak3". Bei mir liegt es genau da, wenn man es aus dem home$ des ts-users entpackt hat ohne den Pfad zu modifizieren:
@reboot teamspeak /home/teamspeak/teamspeak3/ts3server_startscript.sh start
Bei dir müsstest du dann das script vermutlich dort finden (den user teamspeak durch ts3 bei dir ersetzen) bzw. die folgende Zeile in die crontab einfügen (überprüfe aber ob der Pfad defintiv so existiert bzw. passe ihn an falls nicht):
@reboot ts3 /home/ts3/teamspeak3/ts3server_startscript.sh start
So, dann mach mal und viel Erfolg. :-)
-
Also grundsätzlich war der Pfad /home/ts3/teamspeak3-server_linux-x86/ts3server_startscript.sh
Jedoch war mir der teil "teamspeak3-server_linux-x86" zu blöd, daher hab ich ihn kurzerhand weggelassen.
Also alle Daten aus dem "teamspeak3-server_linux-x86" ordner in den ts3 ordner... und den "teamspeak3-server_linux-x86" gelöscht...
Klappte wunderbar, server läuft auch Stabil (mit dem User ts3 gestartet).
Nur funzt das mit der Crontab nicht wirklich... :/
i.wo hab ich da wohl doch nen wurm eingebaut...
btw. ich hab die zeile GANZ UNTEN in die Crontab geschrieben ... unter allem anderen (war nicht viel)... muss die zeile mitten drin i.wo ?
-
Ist egal wo das in der crontab steht. Es darf nur kein # davor stehen.
Die Zeile müsste dann wohl bei dir so aussehen, wenn du die ts-Install eine Ebene nach oben kopiert hast (beachte den start-Befehl am Ende!):
@reboot ts3 /home/ts3/ts3server_startscript.sh start
Wenn das nicht klappt liegt es vermutlich an den Rechten auf das startscript. Die Rechte generell noch mal überprüfen oder einfach noch mal Vollzugriff für den TS3-User auf das ganze Install-Verzeichnis ts3, das ja bei dir identisch mit dem home$-rootdes ts3-Users ist, drüber bügeln. Nen anderen möglichen Grund sehe ich nicht falls der Pfad so stimmt.
Oder doch: Läuft eigentlich der cron-dienst bzw. wird der bei systemstart gestartet? Das habe ich ursprünglich vorausgesetzt, aber das wäre noch ein potentieller Grund warum es bei dir nicht funzt (eigentlich ein Standard-Dienst). Ohne gestarteten cron-Dienst wird aber natürlich auch keine crontab ausgelesen, egal was du da reinschreibst. :-)
Mit ps ax abfragen, ob der unter den aktiven prozessen auftaucht und ggf. ändern falls er nicht automatisch beim boot gestartet wird.
-
Ok, fehler gefunden..
Die Crontab startet nicht automatisch.. >_<
Mal schauen ob mir google weiterhelfen kann.. =)
Danke schonmal
Ok, auch google hilft mir nicht.. -.-'
Kann mir jemand kurz erklären wie ich die Cron-Dienste nach nem Reboot mit starte? ^^
-
Normalerweise mit
# chkconfig --level 35 crond on
prüfen mit
# chkconfig --list crond
-
Normalerweise mit
# chkconfig --level 35 crond on
prüfen mit
# chkconfig --list crond
-bash: chkconfig: command not found
Will er nicht nehmen :/
-
Will er nicht nehmen :/
apt-cache search chkconfig
chkconfig - system tool to enable or disable system services
-
hast du dir mal das hier angeschaut?
damit geht vieles einfacher :-)
http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html (http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html)
-
Wieso nicht einfach ein Init Skript ?
Zb so :
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: teamspeak3
# Required-Start: $local_fs $remote_fs $syslog $network mysql
# Required-Stop: $local_fs $remote_fs $syslog $network mysql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Teamspeak3 Server
### END INIT INFO
tsdir="/home/ts3/teamspeak3-server_linux-amd64/"
tsuser="ts3"
cd $tsdir
case "$1" in
start)
echo "Starting Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh start
;;
restart)
echo "Restarting Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh restart
;;
stop)
echo "Stoping Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh stop
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
esac
exit 0
Danach noch mit "insserv" das Skript automatisch in die verschiedenen Runlevel eintragen lassen.
-
Wieso nicht einfach ein Init Skript ?
ich denke es geht darum den server automatisch neustarten zu lassen falls er mal abstürzt, darum auch die sache mit cron.
weiss nicht wie stabil ts leuft, mach damit normal nix. denke init script ist schon die beste lösung. oder gleich in die /etc/innittab mit respawn eintragen, wenn init stirbt ist sowieso alles am ende :)
-
Will er nicht nehmen :/
apt-cache search chkconfig
chkconfig - system tool to enable or disable system services
Was soll das bewirken?
Bei mir zeigt er genau das gleiche, jedoch kann ich die befehle nicht nutzen .. :/
hast du dir mal das hier angeschaut?
damit geht vieles einfacher :-)
http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html (http://addons.teamspeak.com/directory/tools/web-based/Teamspeak-3-Webinterface-by-Psychokiller.html)
Schau ich mir jetzt mal an .. ;)
Ich bezweifle das ich damit aber das Autostart-Problem in den griff bekomme.. ;)
Wieso nicht einfach ein Init Skript ?
Zb so :
#!/bin/bash
#
### BEGIN INIT INFO
# Provides: teamspeak3
# Required-Start: $local_fs $remote_fs $syslog $network mysql
# Required-Stop: $local_fs $remote_fs $syslog $network mysql
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Teamspeak3 Server
### END INIT INFO
tsdir="/home/ts3/teamspeak3-server_linux-amd64/"
tsuser="ts3"
cd $tsdir
case "$1" in
start)
echo "Starting Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh start
;;
restart)
echo "Restarting Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh restart
;;
stop)
echo "Stoping Teamspeak 3 Server"
su $tsuser ./ts3server_startscript.sh stop
;;
*)
echo "Usage: ${0} {start|stop|restart}"
exit 1
esac
exit 0
Danach noch mit "insserv" das Skript automatisch in die verschiedenen Runlevel eintragen lassen.
Weil ich kein Plan hab wie ich das einfüge? :D
Wenn mir jemand erklärt wie ichs einbaue, dann werd ichs probieren xD
Wieso nicht einfach ein Init Skript ?
ich denke es geht darum den server automatisch neustarten zu lassen falls er mal abstürzt, darum auch die sache mit cron.
weiss nicht wie stabil ts leuft, mach damit normal nix. denke init script ist schon die beste lösung. oder gleich in die /etc/innittab mit respawn eintragen, wenn init stirbt ist sowieso alles am ende :)
Joa, geht ja grundsätzlich nur um den Autostart vom TS.. der TS selber läuft stabil..
Der server schmiert aber immer öfter mal ab .. -.-'
und dann ist auch der TS down.. :/
-
Was soll das bewirken?
o man o man chkconfig musst du erst installieren und mit "apt-cache search" kannst du die Paket Datenbank durchsuchen. installiere es einfach.
-
Ich habe es bis jetzt nur einmal erlebt dass Teamspeak-Server abschmiert.
Das Skript kommt natürlich nach /etc/init.d/ ::)
Du musst es aber noch für deine Ordnerstruktur / User anpassen.
tsdir="/home/ts3/teamspeak3-server_linux-amd64/"
tsuser="ts3"
Wenn du keinen mySQL Server hast, solltest du die Start- u. Stop-Bedingungen löschen
# Required-Start: $local_fs $remote_fs $syslog $network mysql
# Required-Stop: $local_fs $remote_fs $syslog $network mysql
Weil ich kein Plan hab wie ich das einfüge? :D
Wenn mir jemand erklärt wie ichs einbaue, dann werd ichs probieren xD
man insserv
-
wie kann ich den mittels crontab folgenden befehl automatisch nach serverstart ausführen lassen?
screen -d -m -S ts3bot java -jar JTS3ServerMod.jar
mfg daniel
-
Das ist der TS3 Bot.
Die Lösung findest du bei entwickler im Board: http://www.stefan1200.de/forum/index.php?topic=27.0 (http://www.stefan1200.de/forum/index.php?topic=27.0)
Nutze ich auch ohne Probleme.
LG Fierlord
-
Für alle die das Problem mit TS3 und dem Cronjob als Autostart immernoch haben.
Hier die einfachste Lösung:
crontab -e -u userderts3startet
@reboot cd /home/userderts3startet/teamspeak3-server_linux-x86/ && rm ts3server.pid
@reboot cd /home/userderts3startet/teamspeak3-server_linux-x86/ && ./ts3server_startscript.sh start