Bei reboot automatisch starten

Fireball22

Registered User
Hi,
ich habe geradeeben einen Teamspeak-Server installiert und möchte das jetzt irgendwie einrichten, dass der Teamspeak-Server immer automatisch bei einem Server-Reboot gestartet wird!

Kann man das irgendwie mit einem Crontab lösen?

Fireball22
 
Irgendwie wird sowas alle paar Tage mal gefragt.

Wenn es ueber Cronjob sein soll, dann mit "@reboot ..."
 
Wenn Du linux hast, einfach das Startskript in /etc/init.d schieben, bei einem Win-VServer ab in den Autostart.
 
Vielen Dank für eure schnelle Antwort!

Ich habe Suse Linux 9.3 auf meinem Server.

Eigentlich würde ich das ganze schon gern mit einem Crontab regeln, da ich diesen dann auch bequem über Plesk "steuern" kann.

Aber wie kann ich denn dieses "@reboot" in die Crontab-Steurung von Plesk einbringen?
D.h. wo muss ich das @reboot reinschreiben? Minute? Tag?

Fireball22
 
Man gebe in die Suche "@reboot" ein.
 
Hallo,

ich habe das "Teamspeak-Server Startscript", in das Verzeichnis "etc/init.d/" getan, nach einem Reboot hat sich aber leider nichts geändert, woran könnte das liegen? :(

Gruß,
Aquafresh
 
In /etc/init.d/ befinden sich die Start-Skripte -- soweit ist das richtig. Gestartet und gestoppt werden allerdings nur diejenigen Skripte, die für den jeweiligen runlevel vorgesehen sind. Dazu existieren symbolische links in den jeweiligen rc?.d-Verzeichnissen, die nach dem Schema Snnname zum Starten, bzw. Knnname zum Stoppen angelegt sind.
Der init-Prozess ruft beim Booten ein Skript auf, das alle Skripte (die in dem entsprechenden Verzeichnis durch die symbolischen links vertreten sind) der Reihe nach (zuerst S00..., dann S01..., usw) aufruft und dabei den Parameter "start" übergibt. Durch diese Nummerierung können Abhängigkeiten leicht berücksichtigt werden. Beim shutdown werden entsprechend die Knn...-Skripte mit dem Parameter "stop" aufgerufen. Wie man an den Zahlen sieht, ist die Reihenfolge beim shutdown genau umgekehrt wie beim booten.

Du kannst nun also entweder im Verzeichnis /etc/init.d/rc3.d/ jeweils einen S??.... und K??.... link zu deinem Start-Skript anlegen, oder den runlevel-Editor Deiner Linux-Distribution bemühen, der das für Dich macht. Bei SuSE ist der z.B. innerhalb von yast2 erreichbar.

LinuxAdmin
 
Hi Leute

also ich habe das mit dem cronjob getestet und hatte nur probleme:
der ts server war zeitenweise nicht erreichbar
die zwei cs-cz server waren nur im wechsel erreichbar

also davon rate ich jedem ab.

ich habe da noch eine frage zu der anderen lösung. und zwar wie ist das wenn ich unterschiedliche benutzer habe. mit dieser lösung starte ich doch alles als root oder nicht?
 
Stell das folgende Script (USER und DIR anpassen!) nach /etc/init.d, leg dir nen Link in dein Defaultrunlevel und starte das Script.

Damit startest du beim booten automatisch Teamspeak als User XYZ, kannst TS jederzeit beenden und wieder starten.

Das Script habe ich aus den Tiefen des Orginal TS Forums geangelt und es hat mir jetzt rund 2 Jahre treue Dienste geleistet (Debian 3.1 und 4.0).

Code:
# ! /bin/bash
#
# Modified TeamSpeak 2 server startscript
# Original script written by: pwk.linuxfan 2004
#
# . /etc/rc.d/init.d/functions
#
### BEGIN INIT INFO
# Provides: teamspeak2
# Short-Description: TeamSpeak 2 server
# Description: Start and stop your TeamSpeak 2 server...
### END INIT INFO

# CONFIG SECTION
USER=tss
DIR=/home/tss
# END OF CONFIG SECTION

case "$1" in
                start)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo "tss2.pid already exists...";
                                         echo "Is your TeamSpeak 2 server already running?"
                                         exit 1
                                else
                                         if [ "$UID" = "0" ]; then
                                                         for c in $(seq 1 10); do
                                                                         echo -n "!"
                                                                         sleep 1
                                                         done
                                                         echo !
                                            fi
                                         echo "Starting the Teamspeak 2 Server..."
                                         if [ -e $DIR/server_linux ]; then
                                                         if [ ! -x $DIR/server_linux ]; then
                                                                         echo "server_linux is not executable..."
                                                                         echo "Trying to set it."
                                                                         chmod u+x $DIR/server_linux
                                                         fi
                                                         if [ -x $DIR/server_linux ]; then
                                                                         WD=`pwd`
                                                                         cd $DIR
                                                                         sudo -u $USER $DIR/server_linux -PID=$DIR/tss2.pid
                                                                         cd $WD
                                                         else
                                                                         echo "server_linux is not executable..."
                                                                         exit 4
                                                         fi
                                            else
                                                         echo "Could not find server_linux..."
                                                         exit 5
                                            fi
                                fi
                ;;
        stop)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo -n "Stopping the TeamSpeak 2 server..."
                                         if ( kill -TERM `cat $DIR/tss2.pid` ); then
                                                         for c in $(seq 1 300); do
                                                                         if [ -e $DIR/tss2.pid ]; then
                                                                                         echo -n "."
                                                                                         sleep 1
                                                                         fi
                                                         done
                                            fi
                                         if [ -e $DIR/tss2.pid ]; then
                                                         echo "server does not shutdown cleanly..."
                                                         kill -KILL `cat $DIR/tss2.pid`
                                                         rm $DIR/tss2.pid
                                                         sleep 5
                                            else
                                                         echo "done"
                                            fi
                                else
                                         echo "tss2.pid does not exist...";
                                         echo "Is your TeamSpeak 2 server already stopped?"
                                         #exit 7
                                fi
                ;;
                restart)
                                $0 stop && $0 start || exit 1
                ;;
                status)
                                if [ -e $DIR/tss2.pid ]; then
                                         echo "The TeamSpeak 2 server is running."
                                         exit 0
                                else
                                         echo "The TeamSpeak 2 server is stopped."
                                         exit 3
                                fi
                ;;
                passwords)
                                if [ -e $DIR/server.log ]; then
                                         date=$(cat $DIR/server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[0-9]\+-[0-9]\+ [0-9]\+:[0-9]\+:[0-9]\+\).*$/\1/")
                                         spass=$(cat $DIR/server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^.*username: superadmin password: \([a-z0-9]\+\).*$/\1/")
                                         pass=$(cat $DIR/server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username: admin password: \([a-z0-9]\+\).*$/\1/")
                                         echo "Following passwords were generated on $date"
                                         echo "superadmin = \"$spass\""
                                         echo "admin     = \"$pass\""
                                else
                                         echo "server.log not found..." 
                                         exit 1
                                fi
                ;;
                *)
                         echo "Usage: $0 {start|stop|restart|status|passwords}"
                                exit 2
esac
exit 0

Gruß,
Marco
 
danke danke

super jetzt muß ich nur noch nach dem anderen zeug googlen und dann passt das bestimmt schon. in andren foren wird man immer nur auf google verwiesen.
 
Back
Top