====== Minecraft-Server aufsetzen ======
[[https://www.fosslinux.com/41613/how-to-install-minecraft-server-on-linux.htm|Quelle]]
===== Service-Benutzer =====
Benutzer erstellen
sudo adduser minecraft
Passwort und Name angeben, die restlichen Werte sind egal. Passwort notieren.
===== Arbeitsordner erstellen und Home wechseln =====
Ordner in /var erzeugen
cd /var
mkdir minecraft
chown minecraft:minecraft minecraft
usermod --home /var/minecraft minecraft
[[https://stackoverflow.com/questions/20797819/command-to-change-the-default-home-directory-of-a-user#:~:text=Change%20the%20user%27s%20home%20directory%3A%20usermod%20-d%20%2Fnewhome%2Fusername,for%20--home%29%20will%20change%20the%20user%27s%20home%20directory.|Quelle]]
===== Buildtools herunterladen und ausführen =====
Die Buildtools von [[https://www.spigotmc.org/wiki/buildtools/#latest|dieser Seite]] herunterladen.
Die Datei Buildtools.jar in den Ordner /var/minecraft/Build kopieren und dort mit dem Benutzer minecraft gemäß Anleitung ausführen.
===== Erforderliche Software installieren =====
sudo apt-get install openjdk-8-jre-headless
sudo apt-get install screen
Firewall-Port freischalten
sudo ufw allow 25565
Die Datei /var/minecraft/Build/spigot-1.xx.y.jar in /var/minecraft verschieben und einen symbolischen Link erzeugen:
ln -s /var/minecraft/spigot-1.xx.y.jar /var/minecraft/server.jar
Den Minecraft-Server das erste Mal starten:
java -Xms1G -Xmx4G -jar server.jar noguid
Die erste Ausführung wird mit einem Fehler abbrechen. Anschließend gibt es im Arbeitsverzeichnis eine eula.txt. Dort muss der Wert false auf true geändert werden.
Es müsste auch eine server.properties angelegt worden sein, die ebenfalls vor dem ersten Start zu bearbeiten ist.
Jetzt den Server noch einmal starten
java -Xms1G -Xmx4G -jar server.jar noguid
und anschließend wird die Spielwelt erzeugt. Mit dem Befehl ''stop'' wird die Sitzung beendet.
===== Stop-Script erstellen =====
Damit der Dienst später auch sauber gestoppt werden kann, muss ein Stop-Script erstellt werden. Der Minecraft-Dienst im Hintergrund sollte idealerweise nicht hart beendet werden. Stattdessen ist es sinnvoller, dem Server per Konsole einen Stop-Befehl zu übermitteln.
Damit die Konsole Meldungen entgegen nimmt, muss sie in der server.properties aktiviert werden:
enable-rcon=true
rcon.password=MyPassword!
Ohne Passwort wird die Remote-Konsole beim Start aus Sicherheitsgründen deaktiviert.
Das Tool mcrcon kann eine Verbindung zum Server aufnehmen und ein Kommando abschicken:
{{ :spiele:sonstige_titel:mcrcon.7z |}}
{{ :spiele:sonstige_titel:mcrcon-0.7.1-windows.zip |}}, {{ :spiele:sonstige_titel:mcrcon-0.7.1.tar.gz |Quellcode}}, [[https://github.com/Tiiffi/mcrcon/releases|Quelle]]
Die Datei entpackt in das Verzeichnis ''/var/minecraft/'' verschieben und ggf. ausführbar machen.
Anschließend eine Scriptdatei in /var/minecraft erzeugen (z.B. ''stop.sh'') mit folgendem Inhalt
#!/bin/bash
/var/minecraft/mcrcon -c -H 127.0.0.1 -p MyPassword! stop
===== systemd-Dienst erstellen =====
Damit der Minecraft-Server beim als Dienst gestartet werden kann, muss als nächstes eine Dienst-Datei erstellt werden.
Eine neue Datei anlegen
sudo nano /etc/systemd/system/minecraft.service
und folgenden Text reinkopieren:
[Unit]
Description=Run service as user deepak
DefaultDependencies=no
After=network.target
[Service]
WorkingDirectory=/var/minecraft
Type=simple
User=minecraft
Group=minecraft
ExecStart=/usr/bin/java -Xms1G -Xmx4G -jar /var/minecraft/server.jar noguid
ExecStop=/var/minecraft/stop.sh
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target
systemd aktualisieren:
sudo systemd daemon-reload
minecraft-Dienst starten:
sudo systemctl start minecraft
und den Status überprüfen:
sudo systemctl status minecraft
Und den Dienst stoppen:
sudo systemctl stop minecraft
Sofern alles geklappt hat, kann der Dienst standardmäßig aktiviert werden
sudo systemctl enable minecraft
[[https://www.golinuxcloud.com/run-systemd-service-specific-user-group-linux/|Quelle]]
{{tag>[Minecraft Spiele Spiel SpigotMC Java systemd bash Home]}}