Vorbereitungen für den automatischen Systemstart des Minecraft Servers
Am Ende dieses Artikels wirst du einen Systemdienst eingerichtet haben, der deinen Minecraft Server automatisch startet und stoppt. Vorher müssen allerdings noch ein paar Vorbereitungen getroffen werden. Es müssen z. B. ein Start- und Stop-Script erstellt sowie ein Programm zur Steuerung des Minecraft Server installiert werden.
Start-Script für den Minecraft Server
Ein eigenes Start-Script für den Start ist nicht unbedingt notwendig, erleichtert allerdings später Änderungen und die Fehlersuche. Darum legen wir nun eine neue Datei mit dem Namen start.sh im Verzeichnis des Minecraft Servers mit folgendem Inhalt an:
#!/bin/bash
/usr/bin/java -Xmx2G -Xms2G -jar server.jar nogui
Die erste Zeile zeigt dem Betriebssystem, welches Programm verwendet werden soll, um das Skript auszuführen. Wir erstellen ein Bash-Script, darum wird /bin/bash verwendet.
Die zweite Zeile ist genau der Befehl, den wir auch immer zum Starten von unserem Minecraft Server ausführen (siehe auch hier). Mit einer Ausnahme: Ich habe den Pfad zur Java Virtual Machine absolut angegeben. Sollte deine JVM in einem anderen Ordner liegen, musst du den Pfad entsprechend anpassen.
Wenn du nun den Verzeichnis-Inhalt auflistest, sollte die Datei wie folgt angelegt worden sein:
Wenn wir uns die Datei-Rechte anschauen sehen wir, dass die Datei keine Ausführungsrechte besitzt.: -rw-r–r–. Dies müssen wir ändern und setzen das Ausführungsrecht mit folgendem Befehl:
chmod +x start.sh
Danach sollten die Rechte korrekt gesetzt sein und wir können das Script für unseren System-Dienst verwenden: -rwxr-xr-x
Wir führen nun einen Test aus, um zu schauen, ob das Start-Script den Minecraft Server wirklich startet. Gebe dazu folgenden Befehl ein:
./start.sh
Im Grunde genommen ist der Befehl nur der Name des Scripts. Allerdings steht vor dem Namen noch ein ./. Dies sagt dem Betriebssystem, dass sich die Datei im aktuellen Verzeichnis befindet.
Der Server sollte nun ordnungsgemäß hochfahren und damit sind die Vorbereitungen für den Start auch abgeschlossen.
Stop-Script für den Minecraft Server
Es ist wichtig, dass der Minecraft Server immer ordnungsgemäß gestoppt wird. Ansonsten kann es zu Problemen kommen. Es könnte z. B. deine Minecraft Welt noch für den Zugriff durch eine andere Server-Instanz gesperrt sein.
Für das Stoppen des Minecraft Servers sind etwas mehr Vorbereitungen als beim Starten notwendig. Dies liegt daran, dass der Server beim automatischen Start als Systemdienst im Hintergrund ausgeführt wird. Dadurch haben wir keinen direkten Zugriff auf die Server-Konsole.
Wir behelfen uns mit einem Programm namens mcrcon. Mit mcrcon können wir über das sogenannte RCON Protokoll Befehle an den Server senden. Aber dazu später mehr. Zunächst einmal müssen wir das Programm installieren.
Git installieren
mcrcon kompilieren und installieren wir direkt aus den Sourcen des Programms und müssen diese daher von Github herunterladen. Dazu müssen wir Git installieren, damit wir den Quellcode leicht klonen können:
sudo apt install git
Mit diesem Befehl installieren wir git. Das ganze sollte dann in etwas so aussehen:
Mit dem folgenden Befehl kannst du prüfen, ob die Installation erfolgreich war. Es sollte dann die Version von git angezeigt werden:
git --version
mcrcon installieren
Als Nächstes installieren wir mcrcon. Dazu klonen wir als Erstes das Git-Repository und holen somit den Quellcode auf unsere Festplatte. Danach kompilieren wir das Programm mit make und können dann die Installation starten.
Gehe zunächst aus dem Verzeichnis des Minecraft Servers heraus (z.B. mit cd .. in das übergeordnete Verzeichnis) und führe diese Befehle dann nacheinander aus:
git clone https://github.com/Tiiffi/mcrcon.git
cd mcrcon
make
sudo install mcrcon /usr/bin/mcrcon
Git legt mit dem ersten Befehl automatisch ein neues Verzeichnis namens mcrcon an und lädt den Quellcode von Github in dieses Verzeichnis herunter.
Das ganze sollte dann ungefähr so bei dir aussehen:
Jetzt kannst du noch testen, ob die Installation erfolgreich war:
mcrcon -v
Dieser Befehl sollte dir im Erfolgsfall folgende Programminfos ausgeben:
RCON aktivieren
RCON (Remote Console) ist ein Protokoll, das es erlaubt, administrative Kommandos an einen laufenden Minecraft-Server über das Netzwerk zu schicken – ohne dass du direkt im Terminal oder Spiel eingeloggt bist.
Du kannst RCON z. B. benutzen, um:
- den Minecraft Server herunterzufahren
- Spieler zu kicken oder bannen
- Nachrichten an Spieler zu schicken
- u. v. m.
Um RCON zu aktivieren, muss die Datei server.properties im Verzeichnis des Servers angepasst werden. Folgenden Zeilen müssen in der Datei geändert bzw. ergänzt werden:
enable-rcon=true
rcon.password=
rcon.port=25575
Ersetze <passwort> mit einem Passwort deiner Wahl. Dieses Passwort wird für die Verbindung zum Minecraft Server über RCON benötigt.
Jetzt können wir schon testen, ob die Verbindung funktioniert. Starte dazu deinen Minecraft und führe folgendes Kommando aus (Bitte <passwort> mit dem Passwort ersetzen, welches du in deiner server.properties gesetzt hast):
mcrcon -H 127.0.0.1 -P 25575 -p stop
Wenn alles funktioniert hat, sollte Server nun gestoppt worden sein.
Über den Parameter -H gibt man übrigens den Host bzw. die IP-Adresse des Hosts an, auf dem der Minecraft Server läuft. 127.0.0.1 ist eine spezielle IP-Adresse, die immer auf den eigenen Hosts verweist (localhost). Du könntest diesen Befehl aber auch einfach von einem anderen Rechner aus dem Netzwerk ausführen und hier die IP-Adresse des Servers angeben.
Stop-Script erstellen
Wenn im vorherigen Schritt alles geklappt können wir nun ein Stop-Script für den Minecraft erstellen. Dazu legen wir eine neue Datei mit dem Namen stop.sh im Verzeichnis des Minecraft Servers mit folgendem Inhalt an:
#!/bin/bash
/usr/local/bin/mcrcon -H 127.0.0.1 -P 25575 -p stop
Die Datei enthält den gleichen Befehl wie oben bei unserem Test. Auch hier muss wieder darauf geachtet werden, dass <passwort> mit deinem eigenen Passwort ersetzt wird. Außerdem geben wir auch hier den kompletten Pfad zu mcrcon an.
Wie schon beim Start-Script müssen wir auch hier noch das Ausführungsrecht für die Datei setzen:
chmod +x stop.sh
Start -und Stop-Test
Bevor wir zum letzten Schritt – das Einrichten des Systemdienstes – kommen, sollten wir noch einen Test der beiden Scripts durchführen.
Dazu stellen wir zunächst sicher, dass unser Minecraft Server gestoppt ist und geben folgenden Befehl ein:
ps -fe | grep java
Was macht dieses Kommando?
- ps gibt eine Liste aller aktiven Prozesse des Systems aus
- Mit der | (Pipe) können wir die Ausgabe eines Befehls auf einen anderen Befehl umleiten
- grep java filtert die Liste der Prozesse nach dem Wort java
Die Ausgabe sieht dann z. B. so aus, wenn der Server gestartet ist:
In der ersten Zeile sehen wir einen Prozess, der genau unseren Start-Befehl für den Minecraft Server enthält. Diese Zeile würde nicht angezeigt werden, wenn der Server gestoppt wäre.
Somit können wir den Server über unsere beiden Script starten und stoppen und das Ergebnis mit dem ps-Kommando überprüfen.
Wir prüfen also mit den folgenden drei Befehlen, ob unsere Start- und Stop-Scripte sauber funktionieren:
ps -fe | grep java
./start.sh
./stop.sh
Linux Systemdienst für den Minecraft Server einrichten
Im letzten Schritt werden wir einen Linux Systemdienst einrichten, der unsere oben erstellen Start- und Stop-Scripte verwendet. Sofern alles korrekt eingerichtet ist, startet der Minecraft Server automatisch beim Booten des Systems. Außerdem wird er auch wieder gestoppt, wenn wir unser System herunterfahren.
Zunächst müssen wir eine Konfigurationsdatei für den Dienst im Verzeichnis /etc/systemd/system/ anlegen.
Der Dateiname ist gleichzeitig auch der Name des Dienstes. Die Endung der Datei ist immer .service. Darum nennen wir die Datei minecraft.service.
Da auf den Ordner nur der Benutzer root Zugriff hat, müssen wir mit sudo arbeiten. Möchtest du die Datei direkt editieren, kannst du z. B. mit vi oder nano arbeiten:
sudo vi /etc/systemd/system/minecraft.service
sudo nano /etc/systemd/system/minecraft.service
Wir fügen folgenden Inhalt in unsere neue Datei ein und ersetzen die Platzhalter wie folgt:
- <benutzer> ⇒ Hier muss der Name deines Linux-Benutzers, mit dem du immer den Minecraft Server startest, eingetragen werden
- <pfad-zum-minecraft-server> ⇒ Trage hier den absoluten Pfad zu deinem Minecraft Server ein (z. B. /opt/minecraft-server)
- <pfad-zum-start-script> ⇒ Trage hier den absoluten Pfad zu deinem Start-Script ein (z. B. /opt/minecraft-server/start.sh)
- <pfad-zum-stop-script>
- ⇒ Trage hier den absoluten Pfad zu deinem Stop-Script ein (z. B. /opt/minecraft-server/stop.sh)
[Unit]
Description=Minecraft Server
After=network.target
[Service]
User=
WorkingDirectory=
ExecStart=
ExecStop=
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Jetzt müssen wir den Systemdienst noch aktivieren. Dies erfolgt über die folgenden Befehle:
sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
- sudo systemctl daemon-reload: Lädt die Systemdienst-Dateien neu ein
- sudo systemctl enable minecraft: Aktiviert unseren neuen Systemdienst
- sudo systemctl start minecraft: Startet unseren neuen Systemdienst minecraft
Und mit diesen Befehlen kannst du den Dienst manuell starten, stoppen und überprüfen:
sudo systemctl start minecraft
sudo systemctl stop minecraft
sudo systemctl status minecraft
Das ganz sollte dann bei dir in etwas so aussehen:
Damit ist die Einrichtung des Systemdienstes abgeschlossen und der Minecraft Server startet und stoppt automatisch.
Fazit
In diesem Artikel habe ich dir gezeigt, wie du für deinen Minecraft Server unter Linux (z. B. auf dem Raspberry Pi) einen Systemdienst einrichten kannst. Das hat den Vorteil, dass der Server automatisch beim Booten des Betriebssystems gestartet und beim Herunterfahren wieder gestoppt wird.
Lass mich gerne in den Kommentaren wissen, ob du mit meinem Tutorial klargekommen ist. Wenn du auf Probleme gestoßen bist, lass es mich auch gerne wissen. Ich helfe dir gerne weiter und kann dann meinen Artikel auch entsprechende ergänzen.
Alle Themen dieser Artikelserie
- Eigener Minecraft Server auf dem Raspberry Pi
- Minecraft Server auf dem Raspberry Pi aktualisieren
- Minecraft Server auf dem Raspberry Pi automatisch starten