Programme automatisch starten

Kenny1980

Registered User
Hallo,
wollte mal noch nachfragen wie ich zb Teamspeak oder gar den Battlefield 2 server automatisch mitstarten lasse wenn zb der Server rebootet wird, gibt es da was spezielles?

Habe Suse 9.0 mit Plesk und Virtuozzo. Da kann man recht viel verwalten, habe auch schon ein wenig probiert, aber noch kein Autostart hinbekommen.

Mfg
Kenny
 
Wo hast du denn einen Server mit Virtouzzo her ?

Ich habe mir für meinen Dell eine Virtuozzo Lizenz gekauft...

Gruß
Harxer
 
Teamspeak hat eine Datei die "teamspeak_startscript" heisst. Diese Datei einfach aus deinem Teamspeak Verzeichniss nach /etc/init.d/ kopieren. Dann in dem Verzeichniss diesen Befehl ausführen: chmod +x teamspeak_startscript und schon wird beim nächsten Rebooten dein TS Server mitgestartet. Falls du das Script nicht hast hier ist es:
Code:
#! /bin/bash
# Copyright (c) 2004 TeamSpeak team   All rights reserved.
#
# Author: pwk.linuxfan 2004
#

case "$1" in
        start)
                if [ -e tsserver2.pid ]; then
                        echo "tsserver2.pid already exists...server already started ?";
                        echo "If you are sure the server is not running, delete tsserver2.pid"
                        exit 1
                else
                        if [ "$UID" = "0" ]; then
                                echo WARNING ! For security reasons we advise: DO NOT RUN THE SERVER AS ROOT
                                for c in $(seq 1 10); do
                                        echo -n "!"
                                        sleep 1
                                done
                                echo !
                        fi
                        echo "starting the teamspeak2 server"
                        if [ -e server_linux ]; then
                                if [ ! -x server_linux ]; then
                                        echo "server_linux is not executable, trying to set it"
                                        chmod u+x server_linux
                                fi
                                if [ -x server_linux ]; then
                                        ./server_linux -PID=tsserver2.pid
                                else
                                        echo "server_linux is not executable, fix this"
                                        exit 4
                                fi
                        else
                                echo "Couldnt find server_linux"
                                exit 5
                        fi
                fi
        ;;
    stop)
                if [ -e tsserver2.pid ]; then
                        echo -n "stopping the teamspeak2 server"
                        if ( kill -TERM `cat tsserver2.pid` ); then
                                for c in $(seq 1 300); do
                                        if [ -e tsserver2.pid ]; then
                                                echo -n "."
                                                sleep 1
                                        fi
                                done
                        fi
                        if [ -e tsserver2.pid ]; then
                                echo "server does not shutdown cleanly - killing"
                                kill -KILL `cat tsserver2.pid`
                                rm tsserver2.pid
                                sleep 5
                        else
                                echo "done"
                        fi
                else
                        echo "tsserver2.pid is missing, no started server ?"
                        exit 7
                fi
        ;;
        restart)
                $0 stop && $0 start || exit 1
        ;;
        status)
                if [ -e tsserver2.pid ]; then
                        echo "the server seems to be running"
                        exit 0
                else
                        echo "the server seems to be stopped"
                        exit 3
                fi
        ;;
        passwords)
                if [ -e server.log ]; then
                        date=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^\([0-9]\+-[$
                        spass=$(cat server.log | grep "superadmin account info: username: superadmin" | tail -n 1 | sed "s/^$
                        pass=$(cat server.log | grep "admin account info: username: admin" | tail -n 1 | sed "s/^.*username:$
                        echo "Following passwords were generated on $date"
                        echo "superadmin = \"$spass\""
                        echo "admin      = \"$pass\""
                else
                        echo "server.log not found, maybe you did not start the server yet ?"
                        exit 1
                fi
        ;;
        *)
                echo "Usage: $0 {start|stop|restart|status|passwords}"
                exit 2
esac
exit 0
Wenn du mir den Startbefehl für Battlefield gibst den du sonst immer von Hand eingibst sag ich dir auch noch genau wie du Battlefield startest beim Reboot.
 
Thx für Tip 1

Bei Battlefield muss ich das folgendermaßen Starten:


ins BF Verzeichnis gehen, dann screen -A -d -m -S gamesrv ./start.sh

eingeben und schon wird der Dienst im Hintergrund gestartet und läuft.

Mfg
Kenny
 
Uebrigends der Server ist nicht mit Virtuozzo sondern nur ein vServer ;) (So stehts auf jedenfall auf der Seite)
 
Es ist mit Virutozzo (kann bei belieben nen Screen schicken) und V Server zum Teil ja.

Laut aussagen wenn man mal genau wissen will was man hat kann man sagen es ist etwas mehr wie ein VServer aber kein vollwertigen Root.

Ich habe nur alles was ich brauche, nen Root zugang und alle spielereien die es gibt. :-)
 
Kenny1980 said:
Es ist mit Virutozzo (kann bei belieben nen Screen schicken) und V Server zum Teil ja.
Sorry, ist ein reiner virtueller Server. Die nennen es nur anders ('Dynamic Server'), ist aber das Selbe.
('vServer' ist AFAIK ein geschützter Begriff der Firma 'BSB Service GmbH', besser bekannt als 'server4you'.)

Daher verschieb ich den Thread nach 'Virtuelle Server allgemein'.

huschi.
 
Last edited by a moderator:
Dafür würde ich einen Cronjob einrichten.

Einfach einloggen und dann:

1.) crontab -e
2.) Folgendes in eine Zeile einfügen: "@reboot /pfad/zu/screen -A -d -m -S gamesrv /pfad/zu/battlefield/start.sh
3.) Mit STRG + X und "j" verlassen

und nun wird beim Reboot auch Battlefield gestartet.

Frage am Rand: Läuft ein Battlefield Server auf einem virtuell dedizierten Server zufriedenstellend?
 
Dankeschön, werde es nacher mal testen.

Also bis jetzt waren mal 42 Leute drauf, mehr ist aber echt nicht zu zu muten, da er dann langsam anfängt zu laggen. HAbe ihn jetzt mal sicherheitshalber auf 36 Slot zurück gestellt.

Dazu läuft noch ne HP, dann ein Chat und ein Teamspeak. Die Serverauslastung ist bei ca. 70% bei vollem Betrieb.

Danke, dann weiss ich ja jetzt um was es sich genau handelt.

Aber eine frage noch, was ist dann noch der unterschied zwischen vServer und Rootserver? (im prinzip doch nur, das sich evtl 2 Leute einen Server teilen oder)?? (und das der Kernel von denen auf dem Laufenden gehalten wird)

Mfg
Kenny

//Edit: Der Server läuft nicht ganz original mit den 64er Maps was nochmal richtig gut Performance schlucken müsste. Aber ich denk, das ein 40 noch wirklich ohne zu ruckeln läuft. Kann es ja mal probieren.
 
Kenny1980 said:
Aber eine frage noch, was ist dann noch der unterschied zwischen vServer und Rootserver? (im prinzip doch nur, das sich evtl 2 Leute einen Server teilen oder)?? (und das der Kernel von denen auf dem Laufenden gehalten wird)

HAHAHA
Das ist lustig. Wäre schön, wenn es so wäre. Aber dann würden sich die vServer ja nicht für die Anbieter lohnen. Es sind immer mehrere vServer auf einem root-Server. Soviel wie ich mitbekommen habe zwichen 40 und 100. Aber vieleicht auch mehr. Es würde bestimmt kein Anbieter zugeben, dass er hunderte vServer auf einem Host laufen hat.
 
Meinste, das es echt so ist? Denn immerhin Garantieren die mir eine gewisse mhz anzahl sowie den Arbeitsspeicher. Im Virutozzo kann ich das ja alles recht gut überwachen.

Naja, mir kann es ja egal sein, solange ich keine Probleme habe und trotz vollem Server noch alles geht ist es mir dann egal was die machen. :-)


Mfg
Kenny
 
Ach ja, wenn ich das mit dem TeamspeakScript mache, startet dieses Script dann schon mein User TS??? Denn als root sollte man ja nicht solche Progs starten.

Mfg
Kenny

//nochmal edit: denn bisher musste ich immer als user (ts) in das jeweilige Verzeichnis und da dann ./teamspeak2-server_startscript start eingeben, damit dieser gestartet wurde.

//und nochmal:

habe das eben mit dem Crontab mit dem BF SErver versucht, na irgendwie will das nciht, wenn ich unter Putty crontab -e eingebe, dann kommen die ganzen crontabs die auch unter der Server ADministration kommen.

Da kann ich Minute, Stunde, tag des Monats, Monat, Tag der Woche und das Kommando. Nun wenn ich da dann den befehl rein schreibe passiert leider nix.

habe so das geschrieben:

@reboot /usr/bin/screen -A -d -m -S gamesrv /home/usr/bf2/battlefield/start.sh

ohne funktion.....
 
Last edited by a moderator:
HAHAHA
Das ist lustig. Wäre schön, wenn es so wäre. Aber dann würden sich die vServer ja nicht für die Anbieter lohnen. Es sind immer mehrere vServer auf einem root-Server. Soviel wie ich mitbekommen habe zwichen 40 und 100. Aber vieleicht auch mehr. Es würde bestimmt kein Anbieter zugeben, dass er hunderte vServer auf einem Host laufen hat.

Ich denke er hat einen Server der weithin unter RootDS bekannt ist. Sonst hätte er ja keine zugesicherte Rechenleistung....
Und auf Strato VServern laufen nur 10 Maschinen. Bei Hosteurope 15, aber ich denke das sind wirklich Ausnahmen, deine Annahme wird die Regel sein.

Ach ja, wenn ich das mit dem TeamspeakScript mache, startet dieses Script dann schon mein User TS??? Denn als root sollte man ja nicht solche Progs starten.
Mhm das kann ich dir grade nicht sagen, ich glaube der führt die Scripte als der Besitzer aus. Das musst du mal ausprobieren. Habe leider grade kein Linux hier am laufen. Also mal nen reboot und dann ps aux.
Sonst baust dir einfach ein Startscript fürs Startscript:
Code:
#!/bin/bash
su ts
/home/ts/teamspeak2-server_startscript start
Probiers mal. So könntest du evtl. auch fürs bf2 machen und das Script per Crontab aufrufen oder ins init.d Verzeichnis verschieben.
 
Last edited by a moderator:
Back
Top