Hallo Martin,
dieses Script ist nicht von mir getestet. aber enspricht deinen wünschen. Ich hoffe es ist das was du gesucht hast.
ich übernehme keine Garantie.
Im Text oben im Script steht was du machen solltest damit er beim Booten startet. Have Fun.
MFG
ZooL
Martin758 Wrote:hallo zusammen,
wie bekommen ich nen teamspeak server automatisch zum starten, wenn der server hochfährt? das ganze natürlich nicht unter root sondern eben anderen namen
hoffe ihr könnt mir ein bischen weiter helfen.
MFG
Martin
Code:
#! /bin/sh
#
# Shellscript, startet einen TeamSpeakServer im
# Kontext des angegebenen Benutzers.
#
#
# ============================================
#
# 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 rctss im Ordner /etc/init.d erstellen,
# und ausführbar machen (z.B. mit "chmod 755 rctss")
#
# 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/rctss /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/rctss /etc/rc2.d/S99tss"
# Beispiel SuSE "ln -s /etc/init.d/rctss /etc/rc.d/rc2.d/S99tss"
#
#
# Um den Server manuell zu starten/stoppen verwende:
# "rctss start"
# "rctss stop"
#
# "rctss status" zeigt alle laufenden TSS-Prozesse und
# die Adminpasswörter an! (ausgelesen aus server.log)
# < !!! BITTE DIESE VARIABLEN ANPASSEN !!! >
#
# Unter welchem Benutzer soll der Server laufen?
DAEMON_USER="tss"
# Beschreibung, Verzeichnis & Executable des Servers
DESC="TeamSpeakServer"
DIR=/home/tss/tss2_rc2
BIN=server_linux
#
# </ !!! BITTE DIESE VARIABLEN ANPASSEN !!! >
NAME="tss"
DAEMON=$DIR/$BIN
PATH=$DIR:/bin:/usr/bin:/sbin:/usr/sbin
PARAMS="-pid=$DIR/$NAME.pid -db=$DIR/server.dbs -ini=$DIR/server.ini -log=$DIR/server.log -httpdocs=$DIR/httpdocs"
# Sollte der Server nicht vorhanden sein,
# geht natürlich nix!
test -x $DAEMON || echo Daemon im Ordner $DIR nicht gefunden.
test -x $DAEMON || echo ===> Bitte die Variablen DIR und BIN überprüfen!
test -x $DAEMON || exit 0
case "$1" in
start)
echo "Starte $DESC"
cd $DIR
# startet den Server im Kontext des oben angegebenen Benutzers,
# es sei denn der Server läuft bereits:
ps -lC $BIN | grep -e $BIN > /dev/null && echo "===> $DESC läuft bereits!"
ps -lC $BIN | grep -e $BIN > /dev/null || su $DAEMON_USER -c "$DAEMON $PARAMS > /dev/null"
sleep 3
;;
stop)
echo "Stoppe $DESC"
test -f $DIR/$NAME.pid && kill -TERM `cat $DIR/$NAME.pid`
test -f $DIR/$NAME.pid || echo "===> $DESC läuft im Moment nicht!"
sleep 2
;;
restart)
$0 stop
sleep 4
$0 start
;;
status)
echo "Laufende Prozesse von $DESC:"
ps -lC $BIN | grep -e $BIN || echo "===> kein aktiver Prozess vorhanden!"
echo
echo "Passwörter ADMINISTRATION (Quelle: server.log):"
echo --
cat $DIR/server.log|grep -e "admin account"|tr " " "\n"|grep -A 3 -e "username:"
echo --
echo
;;
*)
echo "Parameter: $0 {start|stop|status|restart}"
exit 1
;;
esac