7 Days To Die Dedicated Server auf Debian Linux via Kommandozeile installieren: Unterschied zwischen den Versionen

Aus Knowledgebase
Zur Navigation springen Zur Suche springen
(Besser)
(Verweis auf den separaten Artikel für Steam)
 
(13 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
Die Installation eines '''7 Days To Die Dedicated Servers auf auf Debian Linux via Kommandozeile''' ist nicht ganz trivial. Das gilt vor allem für die Inbetriebnahme des Steam-Clients für die Kommandozeile.
Die Installation eines '''7 Days To Die Dedicated Servers auf auf Debian Linux via Kommandozeile''' ist nicht ganz trivial. Das gilt vor allem für die Inbetriebnahme des Steam-Clients für die Kommandozeile.


Der Server benötigt rund 6,4 GiB Platz auf der Platte und rund 2 GiB RAM (ohne Spieler).
Der geneigte Leser möchte deswegen vorab den Artikel [[Steam-Client auf Debian-Linux optimal einrichten]] lesen und durcharbeiten.


== Steam-Client ==
Der Server benötigt rund 15 GiB Platz auf der Platte und rund 3,5 GiB RAM (ohne Spieler).
Als Grundvoraussetzung für alle Steam-Themen muss zuerst mal der Client installiert und grundkonfiguriert werden. Das passiert am Besten als ''root'', um den Client systemweit für alle Benutzer anbieten zu können.
 
=== Download und Auspacken ===
Im Zielverzeichnis müssen rund 250 MiB Platz vorhanden sein.
cd /tmp
wget <nowiki>http://media.steampowered.com/installer/steamcmd_linux.tar.gz</nowiki>
mkdir /opt/steamcmd
cd /opt/steamcmd
tar xzf /tmp/steamcmd_linux.tar.gz && rm -f /tmp/steamcmd_linux.tar.gz
 
=== Initialer Start ===
./steamcmd
 
Hier scrollt nun eine Menge Text durch mit Hinweisen über Downloads und Pakete. Am Ende muss ein fett gedruckter Prompt da stehen:
'''Steam>'''
 
Der Client kann an dieser Stelle mit <code>quit</code> verlassen werden.
 
=== Berechtigungen einrichten ===
groupadd steam
chgrp -R steam /opt/steamcmd
find /opt/steamcmd -type d -exec chmod 2775 {} \;
chmod 2770 /opt/steamcmd
 
=== Suchpfad ergänzen ===
vi /etc/profile
 
Natürlich kann man den Editor seiner Wahl verwenden. Letztendlich kommt es darauf an, in den Zeilen, in denen die <code>PATH</code>-Variable gesetzt wird, den Pfad zum Steam-Client zu ergänzen.
 
;Vorher:
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games"
fi
 
;Nachher:
if [ "`id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/opt/steamcmd"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/opt/steamcmd"
fi
 
Optional können nun bereits auf dem System angelegte Benutzer in die Gruppe ''steam'' aufgenommen werden.
useradd reiner steam
(Im Beispiel heißt der vorhandene Benutzer ''reiner''.)
 
Damit sind die vorbereitenden Arbeiten für den Client abgeschlossen.


== Server ==
== Server ==
Sinnvollerweise richtet man den Server so ein, dass er unter einem eigenen Benutzer läuft. Dazu fügen wir den Benutzer sdtd hinzu:
Sinnvollerweise richtet man den Server so ein, dass er unter einem eigenen Benutzer läuft. Dazu fügen wir den Benutzer sdtd hinzu:
  adduser --ingroup steam --disabled-password --gecos 'Seven Days To Die Dedicated Server Account' sdtd
  adduser --ingroup games --disabled-password --gecos 'Seven Days To Die Dedicated Server Account' sdtd


=== Installation ===
=== Installation ===
Nun installieren wir den Server. Ganz wichtig ist, dass in ''/home'' genügend freier Platz zu Verfügung steht. Ausgepackt bringt der Server derzeit 6,4&thinsp;GiB an Daten mit!
Nun installieren wir den Server. Ganz wichtig ist, dass in ''/home'' genügend freier Platz zu Verfügung steht.
  su - sdtd
  su - sdtd
  steamcmd.sh
  steamcmd


Ab hier ist nun nach jeder Eingabe der <code>'''Steam>'''</code>-Prompt sichtbar.
Ab hier ist nun nach jeder Eingabe der <code>'''Steam>'''</code>-Prompt sichtbar.
Zeile 66: Zeile 18:
  app_update 294420 validate
  app_update 294420 validate


Der Download wird nun durchgeführt und dauert seine Zeit. Falls das Kommando mit der Meldung <code>Error! App '294420' state is 0x202 after update job.</code> abbricht, ist nicht genügend freier Platz in ''/home/sdtd/Steam'' vorhanden!
Der Download wird nun durchgeführt und dauert seine Zeit.
 
Folgende Fehler sind derzeit bekannt:
* <code>Error! App '294420' state is 0x202 after update job.</code>: Nicht genügend freier Platz in ''/home/sdtd/Steam''.
* <code>Error! App '294420' state is 0x426 after update job.</code>: Servertask läuft noch. Muss vorher beendet werden.


Nach dem Update kann der Client wiederum beendet werden:
Nach dem Update kann der Client wiederum beendet werden:
Zeile 75: Zeile 31:


Mit <code>telnet localhost 8081</code> kann der Server via Kommandozeile gesteuert werden (sofern er läuft).
Mit <code>telnet localhost 8081</code> kann der Server via Kommandozeile gesteuert werden (sofern er läuft).
Weiteres wird noch ergänzt.


=== Automatischer Start ===
=== Automatischer Start ===
Damit der Server nach dem automatischen Start ordnungsgemäß im Hintergrund weiterläuft, muss im Startscript eine Anpassung vorgenommen werden: Die eigentlichen Startzeilen müssen mit einer Leerstelle und Kaufmanns-und (&) abgeschlossen werden:
Damit der Server nach dem automatischen Start ordnungsgemäß im Hintergrund weiterläuft, muss im Startscript ''startserver.sh'' eine Anpassung vorgenommen werden: Die eigentlichen Startzeilen müssen mit einer Leerstelle und Kaufmanns-und (&) abgeschlossen werden:
;Vorher:
;Vorher:
  if [ "$(uname -m)" = "x86_64" ]; then
  ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
  ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
else
  ./7DaysToDieServer.x86 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
fi


;Nachher:
;Nachher:
  if [ "$(uname -m)" = "x86_64" ]; then
  ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS &
  ./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS &
else
  ./7DaysToDieServer.x86 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS &
fi


Durch den nachfolgenden Cronjob wird der Server nach einem Reboot automatisch gestartet. Muss mit <code>crontab -e</code> als Benutzer ''sdtd'' eingefügt werden:
Durch den nachfolgenden Cronjob wird der Server nach einem Reboot automatisch gestartet. Muss mit <code>crontab -e</code> als Benutzer ''sdtd'' eingefügt werden:
Zeile 98: Zeile 44:


Mit der o.&thinsp;G. Zeile als Benutzer ''sdtd'', ohne das ''@reboot'' vornedran kann der Server dann gestartet und die Shell alsdann geschlossen werden (logout).
Mit der o.&thinsp;G. Zeile als Benutzer ''sdtd'', ohne das ''@reboot'' vornedran kann der Server dann gestartet und die Shell alsdann geschlossen werden (logout).
==== Server beenden ====
Mit dem Konsolen-Kommando (telnet, s.&thinsp;O.) ''shutdown'' kann der Server ordnungsgemäß beendet werden. Ob das auch bei einem normalen ''kill''-Kommando im Rahmen eines Host-Reboots so ordentlich läuft, ist derzeit unklar.


== Debugging ==
== Debugging ==
Zeile 114: Zeile 63:
* [https://wiki.dawico.de/display/WIKI/7+Days+To+Die%3A+dedicated+Server+auf+Debian+installieren 7 Days To Die: dedicated Server auf Debian installieren] (fehlerhaft, aber als initialer Start für diesen Artikel gut geeignet)
* [https://wiki.dawico.de/display/WIKI/7+Days+To+Die%3A+dedicated+Server+auf+Debian+installieren 7 Days To Die: dedicated Server auf Debian installieren] (fehlerhaft, aber als initialer Start für diesen Artikel gut geeignet)
* [https://7daystodie.gamepedia.com/Server Server-Dokumentation] im 7 Days to Die Wiki
* [https://7daystodie.gamepedia.com/Server Server-Dokumentation] im 7 Days to Die Wiki
* [https://unix.stackexchange.com/questions/463708/uninstall-a-steam-game-with-the-console Uninstall a Steam game with the console], Stack Exchange
* [https://steamcommunity.com/sharedfiles/filedetails/?l=german&id=360404397 Installing Linux dedicated server for 7 days to die] mit Tips zur Installation von experimentellen Releases.


[[Kategorie: Linux]]
[[Kategorie: Linux]]
[[Kategorie: Spiel]]
[[Kategorie: Spiel]]

Aktuelle Version vom 7. Dezember 2024, 00:21 Uhr

Die Installation eines 7 Days To Die Dedicated Servers auf auf Debian Linux via Kommandozeile ist nicht ganz trivial. Das gilt vor allem für die Inbetriebnahme des Steam-Clients für die Kommandozeile.

Der geneigte Leser möchte deswegen vorab den Artikel Steam-Client auf Debian-Linux optimal einrichten lesen und durcharbeiten.

Der Server benötigt rund 15 GiB Platz auf der Platte und rund 3,5 GiB RAM (ohne Spieler).

Server

Sinnvollerweise richtet man den Server so ein, dass er unter einem eigenen Benutzer läuft. Dazu fügen wir den Benutzer sdtd hinzu:

adduser --ingroup games --disabled-password --gecos 'Seven Days To Die Dedicated Server Account' sdtd

Installation

Nun installieren wir den Server. Ganz wichtig ist, dass in /home genügend freier Platz zu Verfügung steht.

su - sdtd
steamcmd

Ab hier ist nun nach jeder Eingabe der Steam>-Prompt sichtbar.

login anonymous
app_update 294420 validate

Der Download wird nun durchgeführt und dauert seine Zeit.

Folgende Fehler sind derzeit bekannt:

  • Error! App '294420' state is 0x202 after update job.: Nicht genügend freier Platz in /home/sdtd/Steam.
  • Error! App '294420' state is 0x426 after update job.: Servertask läuft noch. Muss vorher beendet werden.

Nach dem Update kann der Client wiederum beendet werden:

quit

Konfiguration

Die Konfiguration findet sich in ~/Steam/steamapps/common/"7 Days to Die Dedicated Server"/serverconfig.xml.

Mit telnet localhost 8081 kann der Server via Kommandozeile gesteuert werden (sofern er läuft).

Automatischer Start

Damit der Server nach dem automatischen Start ordnungsgemäß im Hintergrund weiterläuft, muss im Startscript startserver.sh eine Anpassung vorgenommen werden: Die eigentlichen Startzeilen müssen mit einer Leerstelle und Kaufmanns-und (&) abgeschlossen werden:

Vorher
./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS
Nachher
./7DaysToDieServer.x86_64 -logfile 7DaysToDieServer_Data/output_log__`date +%Y-%m-%d__%H-%M-%S`.txt -quit -batchmode -nographics -dedicated $PARAMS &

Durch den nachfolgenden Cronjob wird der Server nach einem Reboot automatisch gestartet. Muss mit crontab -e als Benutzer sdtd eingefügt werden:

@reboot  cd ~/Steam/steamapps/common/'7 Days to Die Dedicated Server' && ./startserver.sh -configfile=serverconfig.xml

Mit der o. G. Zeile als Benutzer sdtd, ohne das @reboot vornedran kann der Server dann gestartet und die Shell alsdann geschlossen werden (logout).

Server beenden

Mit dem Konsolen-Kommando (telnet, s. O.) shutdown kann der Server ordnungsgemäß beendet werden. Ob das auch bei einem normalen kill-Kommando im Rahmen eines Host-Reboots so ordentlich läuft, ist derzeit unklar.

Debugging

Im Unterordner 7DaysToDieServer_Data findet sich ein output_log mit Timestamp hintendran, da landen die Ausgaben vom Server drin.

Firewall

Der Server öffnet folgende Ports:

  • tcp/127.0.0.1:8081 (Management)
  • tcp/26900
  • udp/26900
  • udp/26902

Die letzten drei müssen in einer ggfs. vorhandenen Firewall bzw. einem NAT-Router entsprechend geöffnet bzw. weitergeleitet werden.

Weblinks