Gameserver Images

Aus mySCP Wiki
Wechseln zu: Navigation, Suche

Gameserver Startbefehl beschreibung

Das Starten von Gameservern beinhaltet ein gewisses Verständnis für die Startbefehle.
Die Startbefehle werden im MySCP so eingetragen, wie als wenn Sie den Server von Hand aus über Putty Starten.

Für die Java basierenden Spiele gibt es einige Parameter sowie Konfigurationen um auch zu gewährleisten das der Kunde nur den Gebuchten Server verwenden kann.

Wir nehmen zum Beispiel einen Startbefehl von Minecraft.

   taskset -c 1-4 ./start.sh gsip gsport gsplayer 512 gsop2 minecraft_server.jar 256 gsop3

In der "start.sh" befinden sich Variablen die anhand diese reinfolge Interpretiert werden

   Java Basierende Spiele sind nicht Multicore fähig. 

Um die Last ein wenig gleichmäßiger zu verteilen, nutzen wir hier den Taskset.

Mit der Option -c geben wir eine Liste der möglichen Anzahl von CPUs an die der Prozess verwenden kann. In unserem Beispiel CPU 1-4

  HINWEIS: Geben Sie Maximal die Anzahl an Cores an, die Ihr Server besitzt.


Mit ./start.sh sprechen wir die start Datei an die den Server vorbereitet und Startet.

Kommen wir nun zu den Variabeln:

   Mit gsip wird die Gameserver IP in die Config geschrieben
   Mit gsport wird der Gameserver Port in die Config geschrieben
   Mit gsplayer wird die Anzahl an gebuchten Spieler in die Config geschrieben.
   Die 512 steht für den Parameter -Xms. -Xms ist die Minimale RAM Starvorgabe des Prozesses.
   Mit gsop2 wird der RAM Limitiert. Der Parfameter -Xmx steht für den Maximalen RAM Verbrauch des Prozesses. Mehr darf und kann der Prozess nciht verwenden.
   Mit DATEINAME.jar wird die Datei benannt welche gestartet wird.
   Die 256 steht für 2 Parameter. 
       Zum einem wird mit -Xss die Kontrolle behalten in welchen schritten der Prozess zum Maximalen RAM verbrauch steigen darf.
       Zum zweitem wird mit -XX:MaxPermSize der Verbrauch der Plugins und unter Prozesse Limitiert. 256 ist eine Standardvorgabe von Java.
   Mit gsop3 geben wir die Version von Java an. Da MySCP über einen Java Versions Changer verfügt kann hiermit die Version 7 oder 8 von Java eingestellt werden.
       Hinweis: Einige Mods können nur mit Java 8 gestartet werden.


   HINWEIS: Dies gilt für Images die von MySCP zur Verfügung gestellt werden.


Gameserver Startbefehle

Minecraft:

   taskset -c 1-4 ./start.sh gsip gsport gsplayer 512 gsop2 minecraft_server.jar 256 gsop3

7 Days to Die:

   ./start.sh gsip gsport gsplayer

Arma 3 - Vanilla

   ./start.sh gsplayer gsip gsport

Counter-Strike 1.6

   ./hlds_run -game cstrike +maxplayers gsplayer +ip gsip -port gsport +map gsmap +sv_password gspw 
   (gsmap = Gameserver Map, gspw = Gameserver Passwort)

Counter-Strike: Condition Zero

   ./hlds_run -game czero +maxplayers gsplayer +ip gsip -port gsport +map gsmap +sv_password gspw 
   (gsmap = Gameserver Map, gspw = Gameserver Passwort)

Counter-Strike:Source

   ./srcds_run -game cstrike +map gsmap -maxplayers gsplayer +ip gsip -port gsport -tickrate gsop1 -autoupdate -steam_dir . -steamcmd_script . 
   (gsmap = Gameserver Map, gspw = Gameserver Passwort, gsop1 = Tickrate)

Counter-Strike:GO

   ./srcds_run -game csgo +map gsmap -maxplayers_override gsplayer -ip gsip -port gsport +sv_password gspw -tickrate gsop1 -usercon -retry +game_mode 1 +game_type 0 +mapgroup mg_bomb -debug -autoupdate
   (gsmap = Gameserver Map, gspw = Gameserver Passwort, gsop1 = Tickrate)

Left4Dead

   ./srcds_run -game left4dead -maxplayers gsplayer +ip gsip -port gsport -autoupdate -steam_dir . -steamcmd_script .

Left4Dead2

   ./srcds_run -game left4dead2 +map gsmap -maxplayers gsplayer +ip gsip -port gsport -autoupdate -steam_dir . -steamcmd_script .

Multi Theft Auto

   ./mta-server

Rising World

   taskset -c 1-8 ./start.sh gsip gsport gsplayer 512 gsop2 server.jar 256 gsop3

San Andreas Multiplayer

   ./start.sh gsip gsport gsplayer


   HINWEIS: Anhand diesen Startbefehlen können Sie sich für jedes beliebige Spiel Orientieren.


Gameserver Mods Startbefehle (Basierend auf Minecraft)

Sämtliche Mods

   ./start.sh gsip gsport gsplayer 512 gsop2 DATEINAME.jar 256 gsop3

Craftbukkit (Jede Version)

   taskset -c 1-8 /usr/lib/jvm/java-gsop3-oracle/jre/bin/java -server -Xss256M -Xms512M -Xmxgsop2M -jar craftbukkit.jar nogui -h gsip -p gsport -s gsplayer gsplayer

Spigot (Jede Version)

   taskset -c 1-8 /usr/lib/jvm/java-gsop3-oracle/jre/bin/java -server -XX:MaxPermSize=256M -Xss256M -Xms512M -Xmxgsop2M -jar spigot.jar nogui -h gsip -p gsport -s gsplayer


Gameserver Images Packen

Image Strucktur / Mod Strucktur

   Sie laden den Betroffenen Server herunter und entpacken diesen. Wenn Sie sich nun in diesem Ordner befinden packen Sie den Server einfach mit: tar -cf imagename.tar *
   Wenn Sie eine versteckte Datei in den Ordner einfügen. z.B. eine .ftpaccess Datei, so müssen Sie anders Packen: tar -cf imagename.tar * .ftpaccess
   Versteckte Dateien (Dateien mit einem . vor dem Namen) werden ohne Angabe der Datei Ignoriert.

Plugin Strucktur

   Erstellen Sie einen Ordner namens plugins in diesem Ordner packen Sie nun das Plugin oder die Pluginsammlung rein. Nun gehen Sie wieder einen Ordner zurück so das Sie den Plugins Ordner sehen.
   Diesen Packen Sie nun mit tar -cf pluginname.tar plugins.
   HINWEIS: Sie sollten von jedem Image, Mod und Plugin eine MD5 Hashsummer erstellen lassen. Diese MD5 Datei dient zum Überprüfen der Aktualität des Images. Er wird beim Installieren geprüft 
            ob die Datei im Cache Ordner liegt. Liegt Sie dort wird geprüft ob eine MD5 Datei auf dem Imageserver vorhanden ist. Wenn ja lädt er nur die 1KB Datei herunter und prüft die Hashsummer 
            mit der die in der Datei steht. Sind die beiden gleich, wird das Image nicht erneuert heruntergeladen und es wird Traffic eingespart.
   Sie können diese MD5 Datei wie folg erstellen.
   Via Putty in das Verzeichnis der Images gehen und folgendes eingeben. md5sum Imagename.tar > Imagename.tar.md5

MD5 Hash Skript

Kopieren Sie das in eine Datei namens md5hasher.sh und geben dieser mit chmod 0755 md5hasher.sh die benötigten ausführrechte.
Das Skript erstellt nun für Sie alle MD5 Hash Dateien von jedem Server.

   #!/bin/bash
rm -r *.md5
for line in `ls -l *.tar | awk '{print $9}'`; do md5sum $line > $line.md5 done