Benutzer-Werkzeuge

Webseiten-Werkzeuge


tutorial:server:automatischer_restart

Dies ist eine alte Version des Dokuments!


Automatischer Restart

Hl2-Server mit der Source/EP1-Engine und der OrangeBox-Engine sollten in gewissen Abständen neugestartet werden. Manche Gameserverprovider starten ihre Gameserver morgens neu. Es gibt verschiedene Möglichkeiten die einem offen stehen. Der Server kann mit manuell über die Remote-Console und automatisch mit einem Addon oder mit einem Shell-Script neugestartet werden.

Manuell neustarten

Meist ist es sinnvoll vor Clanwars den Warserver vorher neu zu starten. Dadurch, dass diese Server meistens leer sind, kann es in bestimmten Situationen1) zu starken Lags führen. Manchmal hilft ein Mapchange. Wenn das dann auch nicht hilft, bringt dann nur noch ein Neustart noch was. Mittels HLSW kann man den Server neustarten. Oftmals starten die Provider ihre Server nicht automatisch neu, wenn dieser beendet wurde2). Deswegen ist es besser, das mal zu testen, wenn der Server nicht gebraucht wird. Folgende Befehle können den Server neustarten lassen:

  • _restart
  • quit
  • exit

Gameserver mit Plugins neustarten (GameserverProvider)

FIXME Inhalt folgt…

Gameserver mit Cronjobs neustarten (Root-Server)

Mit Cronjobs lassen sich bestimmte Aufgaben zu bestimmten Zeitpunkten erledigen. Für diese Art des automatischen Neustarts braucht man einen Root-Server. Die meisten haben sich schon eigene Startscripts für ihre Gameserver geschrieben. Wichtig ist es, dass das Startscript den Server beenden und ihn neustarten kann.

Vorgehensweise

Zuerst muss man sich als User in die Shell einloggen. In manchen Fällen starten Admins ihre Server über ein Shell-Script mit dem User root neu. Diese Scripts starten dann mittels sudo die Server mit einem unterprivilegiertem User neu. Je nach Situation muss man sich dann entweder als normaler User oder als root einloggen. Danach wechselt man in das Verzeichnis, in dem sich auch das Startscript befindet. In diesem Beispiel wird der Server um 4 Uhr Morgens neugestartet. Das Beispielstartscript befindet sich in /home/gameserver/script/ und heißt run.sh. Wir nutzen in diesem Beispiel das |Start,Stop und Restartscript mit Konfigdateien. Mit dem Befehl crontab -e können mehrere Zeitgesteuerte-Aufträge eingerichtet werden. Der Befehl crontab -l listet die aktuellen Crontabs auf. Da ein Cronjob hinzugefügt werden soll, muss mit crontab -e der aktuelle Crontab erweitert werden. Meist steht dort nur ein Kommentar. In manchen Fällen möchten die Admins lieber einen anderen Editor verwenden. Mit dem Befehl crontab txt_cron würde z.B. die Datei txt_cron geladen werden. Wichtig ist, dass dieser den Text mit der ASCII-Zeichencodierung im UNIX-Format abgespeichert wird. Verwendet man einen Editor unter Windows, muss darauf geachtet werden. Die letzte Zeile muss immer frei bleiben, da ansonsten die Crontabs nicht abgearbeitet werden. Hier das Beispiel:

0 4 * * * /home/gameserver/scripts/run.sh restart gungame >/dev/null

Damit der ausgegebene Text in den Logdateien nicht zu sehen ist, kann man die Ausgabe mit >/dev/null umleiten. Unterstützt das eigene Startscript den restart nicht, können auch mehrere Befehle mit && verkettet werden. Die Reihenfolge bleibt dann erhalten. Man muss den Server dann erst mit dem script stoppen und dann wieder starten. Hier zwei Beispiele:

0 4 * * * /home/gameserver/stop_gungame.sh >/dev/null && /home/gameserver/start_gungame.sh >/dev/null 
0 4 * * * /home/gameserver/gungame.sh stop >/dev/null && /home/gameserver/gungame.sh start >/dev/null 
1) hängt vom Hostsystem ab
2) bei Abstürzen starten mit der Standardeinstellung die Server automatisch neu
tutorial/server/automatischer_restart.1234702413.txt.bz2 · Zuletzt geändert: 2009/10/24 13:50 (Externe Bearbeitung)