Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Linux-teamspeak beim hochfahren starten (https://www.delphipraxis.net/64140-linux-teamspeak-beim-hochfahren-starten.html)

yankee 28. Feb 2006 00:20


Linux-teamspeak beim hochfahren starten
 
Hi @ll,

ich habe gerade ein super simples Problem und komme nicht drauf (find' auch bei google nichts. Wahrscheinlich ist der Rest der Welt schlauer).
Ich versuche gerade teamspeak auf Debian 3.1 zu installieren. Also gut, runterladen, extrahieren starten, funktioniert. Leider startet sich ts aber als root und aus Sicherheitsgruenden sollte man das ja nicht machen. Also lege ich ein Benutzer tss und eine Gruppe tss an und "chown -R tss:tss" mit dem ganzen teamspeakverzeichnis. Dann nochmal versuchen ts zu starten. Funktioniert. Nur leider als root.
Trotzdem habe ich noch die symbolischen Links (auch als Besitzer tss:tss) in rc2-5 angelegt. Dann rebooted und gedacht der tsserver wird dann schon starten.
Aber Pustekuchen. ps -A und der Server ist nicht da. Auch die datei mit der pid ist nicht im ts-verzeichnis.

Jetzt bin ich mir nicht sicher, ob mein Problem, dass der Server beim Hochfahren nicht startet und meinem Problem, dass er als root startet, wenn ich ihn dann manuell starte, aber ich weiss ja grundsaetzlich nicht wirklich was ich falsch gemacht habe.

Hier mal die betreffende Zeile aus der /etc/passwd:
tss:x:65001:108::/tmp/muell:/bin/false

Irgendwelche Ideen? *hoff*

BrunoT 28. Feb 2006 06:41

Re: Linux-teamspeak beim hochfahren starten
 
Hallo yankee,

am besten du startest das ganze in dem StartSkrtipt von linux mit.

z.b. /etc/init.d/rc.local oder /etc/init.d/rc oder /etc/init.d/boot.local

letzteres sollte die beste Variante sein.

mfg

BrunoT

wfoertsch 28. Feb 2006 08:14

Re: Linux-teamspeak beim hochfahren starten
 
hoi


ist zwar kein chroot (jail) aber dropt beim starten die rootrechte und looft dann als user ...



teamspe 3577 0.0 0.3 15700 2028 ? S Feb17 0:00 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3578 0.0 0.3 15700 2028 ? S Feb17 0:00 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3579 0.0 0.3 15700 2028 ? S Feb17 1:54 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3580 0.0 0.3 15700 2028 ? S Feb17 5:33 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3581 0.0 0.3 15700 2028 ? S Feb17 5:10 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3582 0.0 0.3 15700 2028 ? S Feb17 0:00 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak
teamspe 3583 0.0 0.3 15700 2028 ? S Feb17 0:00 /home/teamspeak/tss2_rc2/server_linux -pid=/home/teamspeak/tss2_rc2/tss.pid -db=/home/teamspeak





#! /bin/sh
#
# Shellscript, startet einen TeamSpeakServer im
# Kontext des angegebenen Benutzers.
#
# FearFactor (f@fearfactor.de)
#
# ============================================
#
# 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="teamspeak"
# Beschreibung, Verzeichnis & Executable des Servers
DESC="TeamSpeakServer"
DIR=/home/teamspeak/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

yankee 1. Mär 2006 19:01

Re: Linux-teamspeak beim hochfahren starten
 
@wfoertsch: thx, das funzt!
@BrunoT: ich habe es weiterhin mit den links in den rcx-verzeichnissen gemacht. Da ist dich dafuer gedacht, oder? Alles andere ist d doch auch drin...
Die erste von dir gennate Datei macht doch auch nichts anderes, als diese Links aufzurufen, Die zweite Datei habe ich noch nichtmal...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz