Wie man einen Minecraft-Server als systemd-Dienst auf einem Linux-VPS ausführt

Ein systemd-Dienst führt Ihren Minecraft-Server im Hintergrund als verwalteten Linux-Dienst aus. Das bedeutet, dass Sie ihn mit systemctl starten, stoppen, neu starten, Protokolle überprüfen und beim Booten aktivieren können, anstatt den Server in einem SSH-Fenster laufen zu lassen.

Diese Anleitung ist für einen Linux-VPS, auf dem Sie bereits SSH-Zugriff und eine Minecraft-Server-JAR haben. Wenn Sie Java noch nicht installiert oder eine Minecraft-Server-JAR heruntergeladen haben, tun Sie dies zuerst und kehren Sie dann zu dieser Anleitung zurück.

In den folgenden Beispielen befindet sich der Minecraft-Server-Ordner unter /home/minecraft/server und die JAR-Datei heißt server.jar. Ändern Sie diese Pfade, wenn Ihr Server einen anderen Ordner oder JAR-Namen verwendet.

  1. Erstellen Sie einen dedizierten Linux-Benutzer für den Minecraft-Server. Den Server als eigenen Benutzer auszuführen, ist sicherer, als ihn als root auszuführen.
    sudo useradd -m -r -s /bin/bash minecraft
    sudo mkdir -p /home/minecraft/server
    sudo chown -R minecraft:minecraft /home/minecraft/server
  2. Laden Sie Ihre Minecraft-Server-JAR in /home/minecraft/server hoch oder herunter. Der Ordner sollte die JAR und nach dem ersten manuellen Start Dateien wie eula.txt, server.properties, logs und den Weltordner enthalten.

    Linux-Terminal zeigt Beispielinhalt eines Minecraft-Server-Ordners

  3. Akzeptieren Sie die Minecraft-EULA, nachdem Sie sie gelesen haben. Minecraft wird nicht richtig starten, bis eula.txt eula=true enthält.
    sudo -u minecraft nano /home/minecraft/server/eula.txt
  4. Erstellen Sie ein Startskript. Dies hält den Java-Befehl an einem Ort, sodass der systemd-Dienst jedes Mal denselben Befehl ausführen kann.
    sudo nano /home/minecraft/server/start.sh

    Verwenden Sie einen Befehl wie diesen und passen Sie den RAM und den JAR-Namen für Ihren Server an:

    #!/bin/bash
    cd /home/minecraft/server
    exec java -Xms2G -Xmx4G -jar server.jar nogui

    -Xms ist die anfängliche RAM-Zuweisung. -Xmx ist die maximale RAM-Zuweisung. Setzen Sie -Xmx nicht auf den gesamten VPS-Speicher; lassen Sie RAM für Linux, Java-Overhead, SSH, Backups und andere Dienste übrig.

    Linux-Terminal zeigt ein Minecraft start.sh-Skript

  5. Machen Sie das Startskript ausführbar und im Besitz des Minecraft-Benutzers.
    sudo chmod +x /home/minecraft/server/start.sh
    sudo chown minecraft:minecraft /home/minecraft/server/start.sh
  6. Testen Sie das Startskript manuell, bevor Sie den Dienst erstellen. Stoppen Sie es mit stop von der Minecraft-Konsole oder drücken Sie Ctrl+C, nachdem Sie bestätigt haben, dass es startet.
    sudo -u minecraft /home/minecraft/server/start.sh

    Wenn dieser manuelle Test fehlschlägt, beheben Sie den Fehler, bevor Sie fortfahren. Ein systemd-Dienst wird keinen fehlerhaften Java-Befehl, fehlende JAR, falschen Pfad oder nicht akzeptierte EULA beheben.

  7. Erstellen Sie die systemd-Dienstdatei.
    sudo nano /etc/systemd/system/minecraft.service
    [Unit]
    Description=Minecraft Server
    After=network.target
    
    [Service]
    User=minecraft
    WorkingDirectory=/home/minecraft/server
    ExecStart=/home/minecraft/server/start.sh
    Restart=on-failure
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target

    User gibt an, welches Konto den Server ausführt. WorkingDirectory ist der Minecraft-Ordner. ExecStart ist das Skript, das systemd ausführt. Restart=on-failure startet den Dienst neu, wenn er abstürzt.

    Linux-Terminal zeigt eine Minecraft systemd-Dienstdatei

  8. Laden Sie systemd neu, damit es die neue Dienstdatei erkennt.
    sudo systemctl daemon-reload
  9. Starten Sie den Minecraft-Dienst und überprüfen Sie seinen Status.
    sudo systemctl start minecraft
    sudo systemctl status minecraft --no-pager

    Linux-Terminal zeigt systemctl-Status für einen Minecraft-Dienst

  10. Aktivieren Sie den Dienst beim Booten, sobald Sie zufrieden sind, dass er korrekt startet.
    sudo systemctl enable minecraft
  11. Öffnen Sie den Minecraft-Port in Ihrer Firewall, falls Sie eine verwenden. Der Standardport für die Java Edition ist 25565 TCP.
    sudo ufw allow 25565/tcp

    Auf AlmaLinux, Rocky Linux, Oracle Linux oder CentOS mit firewalld verwenden Sie:

    sudo firewall-cmd --permanent --add-port=25565/tcp
    sudo firewall-cmd --reload

 

Nützliche Dienstbefehle

BefehlWas er tut
sudo systemctl start minecraftStartet den Minecraft-Dienst.
sudo systemctl stop minecraftStoppt den Minecraft-Dienst.
sudo systemctl restart minecraftStartet den Minecraft-Dienst neu.
sudo systemctl status minecraft --no-pagerZeigt an, ob der Dienst läuft oder fehlgeschlagen ist.
sudo journalctl -u minecraft -fVerfolgt das Live-Dienstprotokoll.
sudo systemctl disable minecraftVerhindert, dass der Dienst beim Booten automatisch startet.

 

Fehlerbehebung

ProblemWas zu überprüfen ist
Dienst schlägt sofort fehlÜberprüfen Sie den JAR-Dateinamen, den ExecStart-Pfad, die Java-Installation und eula.txt.
Spieler können nicht verbindenÜberprüfen Sie, ob der Server läuft, der Port 25565 offen ist und server.properties den richtigen Port hat.
Server läuft aus dem SpeicherReduzieren Sie -Xmx, verringern Sie die Sichtweite, entfernen Sie schwere Mods oder erweitern Sie den RAM.
Änderungen werden nicht angewendetStarten Sie den Dienst neu, nachdem Sie server.properties bearbeitet oder die JAR ersetzt haben.

Machen Sie ein Backup, bevor Sie die JAR ersetzen, Welten ändern, wichtige Konfigurationsdateien bearbeiten oder einen modifizierten Server aktualisieren.

  • 0 Benutzer fanden dies hilfreich
War diese Antwort hilfreich?

Mehr zum Thema

Wie man sich mit SSH zu einem Linux VPS verbindet

SSH ist die übliche Methode, um einen Linux VPS zu verwalten. Es bietet Ihnen ein Terminal auf...

Wie man Pakete auf einem Linux-VPS aktualisiert

Das Aktualisieren von Paketen hilft, Sicherheitsprobleme zu beheben und Server-Tools kompatibel...

Wie man einen Sudo-Benutzer auf einem Linux-VPS erstellt

Ein Sudo-Benutzer ermöglicht es Ihnen, einen Linux-VPS zu verwalten, ohne sich für jede Aufgabe...

Wie man SSH auf einem Linux-VPS sichert

SSH ist der Hauptweg, um einen Linux-VPS zu verwalten, daher sollte es gesichert werden, bevor...

Wie man die Festplattennutzung auf einem Linux-VPS überprüft

Probleme mit der Festplattennutzung können verhindern, dass Updates, Backups, Logs, Datenbanken...