View Full Version : ts bei system start starten
el-torro
03-03-2004, 16:39
Jo,
Da mein Server doch ca jede woche 1mal ausfällt und rebootet (dauert immer etwa 2 minuten) wäre es gut wenn gleich mit dem systemstart auch ts gestartet wird...
ich habe suse 8,2....
Wäre nett wenn mir wer sagt wie das geht :D
MfG
google ist dein bester Freund...
Linux Init System:
http://www.linuxsa.org.au/meetings/1997-07/init/
(Dedizierter Server + schnelle Internetverbindung + unerfahrener Admin = potentielle Katastrophe (Spamschleuder, Warez-Server, Pr0n-Server...)
Das hab ich eben gemacht, zwar unter suse 9.0 aber egal.
Folgendes Skript muss nach /etc/init.d/ kopiert werden.
skriptname: tss
rechte: 755
besitzer: root.root
#! /bin/bash
# Copyright (c) 2001 TeamSpeak team All rights reserved.
#
# Author: Niels Werensteijn 2001
#
# /etc/init.d/tss
#
### BEGIN INIT INFO
# Provides: tss
# Required-Start: $network
# Required-Stop:
# Default-Start: 3 5
# Default-Stop:
# Description: TeamSpeakServer
### END INIT INFO
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v ditto but be verbose in local rc status
# rc_status -v -r ditto and clear the local rc status
# rc_failed set local and overall rc status to failed
# rc_failed set local and overall rc status to
# rc_reset clear local rc status (overall remains)
# rc_exit exit appropriate to overall rc status
. /etc/rc.status
# First reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - insufficient privilege
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signalling is not supported) are
# considered a success.
# Paths to programs
TSSD=/home/tss/server_linux #!!!VERZEICHNIS BITTE ANPASSEN!!!
case "$1" in
start)
echo -n "Starte TeamSpeak 2 Server Daemon"
startproc $TSSD -PID=/home/tss/tss2.pid > /dev/null #!!!VERZEICHNIS BITTE ANPASSEN!!!
rc_status -v
;;
stop)
echo -n "Stoppe TeamSpeak Server Daemon"
killproc -TERM `cat /home/tss/tss2.pid` #!!!VERZEICHNIS BITTE ANPASSEN!!!
rc_status -v
;;
restart)
$0 stop && $0 start || return=$rc_failed
;;
status)
echo -n "Prüfe Teamspeak: "
# Status has a slightly different for the status command:
# 0 - service running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running
checkproc $TSSD
rc_status -v
;;
*)
echo "Usage: $0 {start|stop|status|restart}"
exit 1
esac
exit 0
Nun fehlen noch die Links, damit in den entsprechenden Runleveln der Server gestartet wird. Bei SuSE ist es sinnvoll, den Server in folgenden Runleveln zu aktivieren:
Runlevel 3, mit Netzwerkunterstützung
Runlevel 5, mit Netzwerkunterstützung und grafischer Oberfläche
Entsprechend müssen also folgende Links erstellt werden:
ln -s /etc/init.d/tss /etc/init.d/rc3.d/S10tss
ln -s /etc/init.d/tss /etc/init.d/rc5.d/S10tss
ln -s /etc/init.d/tss /etc/init.d/rc3.d/K35tss
ln -s /etc/init.d/tss /etc/init.d/rc5.d/K35tss
Falls das Init-Skript mal von Hand gestartet werden soll, wird nun noch SuSE-typisch ein weiterer Link angelegt:
ln -s /etc/init.d/tss /usr/sbin/rctss
Wenn du damit fertig bist, wird dein Server beim booten gestartet.
Falls du mal in die Gelegenheit kommen solltest, den Server von Hand zu starten oder stoppen oder sonst was, gibst du einfach nur "rctss" in die Konsole oder Shell. Alles weitere ist dann selbsterklärend.
Wünsche viel Spass und poste mal obs bei dir gefunzt hat.
el-torro
04-03-2004, 06:57
hört sich alles sehr sehr gut an...
aber muss diese zeile:
TSSD=/home/tss/server_linux #!!!VERZEICHNIS BITTE ANPASSEN!!!
nicht auf das suse startscript statt auf server_linux zeigen?
Ich starte ja per hand auch des susestartscript ...
Dies funzt sehr gut bei mir auf meine Fedora box
schreib dies mahl/just add
/home/tss/tss2_rc2/server_linux
ins/to
/etc/rc.local
Dies war ein Tip von Brain in ein altes thread
Ich habe alles nach Beschreibung mit einer frischinstallation (TS gehört natürlich auch dazu) von SuSE 9,.1 Personal ausprobiert. Jedoch sagt init beim Booten immer nur "Error starting Deamon. Aborted". In der Log von TS steht kein Fehler. (jedoch ist ein Eintrag der eigendlich besagt, dass der Sever läuft! Prozesse laufen aber keine) Da init selber nicht Logt habe, ich (fast) keine Chance an das Problem ranzukommen.
Wenn ich den Server manuell über das Startscript oder über server_linux starte, funktioniert alles einwandfrei.
Momentan starte ich meinen TeamSpeak-Server beim Systemstart mit cron, was natürlich nicht gerade die "saubere" Variante ist.
OS: SuSE 9.1 Personal
Kernel: 2.6.5-7.108-default
TS-Version: Neuste (also 2.0.20.01)
vBulletin® v3.7.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.