Minecraft Server Konsole wenn als service gestartet?

julihan41  10.09.2022, 16:45

Startest du Minecraft als systemd-unit?

AimPizza 
Fragesteller
 10.09.2022, 16:48

ja

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Über systemd scheint es kein Weg zu geben, die in Konsole von z.B. Java Service einzugreifen. Du könntest nur die aktuelle Konsolenausgabe auslesen, aber z.B. keine Eingabe senden. Eventuell kennst ein Linux Experte besser damit aus.

Du wirst dafür ein Tool wie screen oder tmux brauchen. Damit werden virtuelle Terminal Sessions erzeugt, die offen bleiben und zu denen du Attachen kannst.

Ich persönlich nutze LinuxGSM für meine Game Server. Damit ist eine leichte Installation und Verwaltung möglich. Ein Zugriff auf die Konsole des Servers ist ebenfalls möglich.

Es gibt sogar eine offizielle Unterstützung für PaperMC. Alternativ musst du den normalen Minecraft Server anpassen.

Auch wenn LinuxGSM in Bash Scripten umgesetzt ist, könnte es Probleme mit der ARM Architektur vom Pi geben.

Ich nutze das Tool auf einem x86 basierten Server.

AimPizza 
Fragesteller
 07.10.2022, 20:18

Vielen lieben Dank fuer die konstruktive Antwort. So etwas ist hier leider nicht allzu oft gesehen, deshalb schaetz ich es umso mehr. Leider ist, wie du schon sagtest die Architektur ausschlaggebend: "Raspberry PI uses ARM architecture whereas all the game servers will only run on x86 compatible architectures such as 32-bit and 64-bit versions of distros. Raspberry PI is not compatible with x86."

0
tide1109  07.10.2022, 21:46
@AimPizza

Trotz dieser Meldung könntest du dein Glück mit LinuxGSM versuchen.

Java und somit auch der Minecraft Server ist mit der ARM Architektur kompatibel. Ein laufenden Server hast du auch schon.

Das Tool ist in Bash Scripten umgesetzt und die Bash Shell läuft auch auf dem Pi.

Beim Dependency Befehl solltest du vermutlich den Teil mit add-architecture ignorieren. Bei Minecraft sollte es nicht nötig sein. Bei manchen anderen Servern ist es notwendig.

Ein Versuch schadet nicht. Falls es doch nicht funktioniert kannst du den Linux User und das Home Verzeichnis mit dem Server löschen.

Wenn es funktioniert, dann sparst du dir einiges an Aufwand.

1

Du musst herausfinden, wie du den Service genannt hast. Dann kannst du über

sudo systemctl status NameDesService.service

Logs einsehen, die dieser Service sammelt.

Wahrscheinlich hast du einfach aus irgendeinem Tutorial die Befehle in eine Eingabeaufforderung kopiert und ausgeführt, richtig?

Der Server läuft doch wahrscheinlich über Screen? Wenn ja kannst du mit:

<sudo> screen -ls

Eine Übersicht der aktiven Sitzungen bekommen. Mit:

<sudo> screen -r <id>

kannst du dich dann auf den jeweiligen Screen verbinden.

AimPizza 
Fragesteller
 10.09.2022, 16:42

Entschuldige bitte die Unwissenheit, aber screen sagt mir nichts. Wenn ich im ssh terminal 'screen --help' eingebe, sagt er mir auch "-bash: screen: command not found"

0
DieFreistunde  10.09.2022, 16:43
@AimPizza

Welchen Service hast du dann bitte eingerichtet? Bzw. was hast du überhaupt eingerichtet? Die .Jar muss ja irgend wie ausgeführt werden mit den richtigen Parametern.

1
julihan41  10.09.2022, 16:47
@DieFreistunde

Vermutlich als systemd-unit. Kann das sein?

Screen ist ja nur als Terminal-Multiplexer "notwendig".

1
DieFreistunde  10.09.2022, 16:50
@julihan41

Sehr wahrscheinlich, ja. Ich habe hier ein Tutorial gefunden, wie man einen Minecraftserver mit Systemd aufsetzen kann, jedoch frage ich mich da, ob OP überhaupt versteht, was er da copy pastet hat oder einfach nur gemacht hat xd

1
AimPizza 
Fragesteller
 10.09.2022, 16:52
@DieFreistunde

Tut mir Leid ihr Profis, ich bin blutiger Anfaenger. Einiges versteh ich schon aber eben nicht alles, drum frag ich ja nach.

0
DieFreistunde  10.09.2022, 16:56
@AimPizza

Alles gut, alles gut ^^

Wäre halt nur super zu wissen, was genau für ein Tutorial du verwendet hast, damit man sich absolut sicher sein kann, was der richtige Lösungsansatz ist.

Falls Systemd richtig ist, wäre da gut. Screen ist aber (meiner Meinung nach) die definitiv einfachere Lösung. Da musst du weniger machen als mit systemd

0
AimPizza 
Fragesteller
 10.09.2022, 17:12
@DieFreistunde

Also meinst du, ich muss in der .service Datei etwas mit screen ergaenzen? Und screen ist wie eine art eigener Desktop fuer den Service, wenn ich das richtig verstehe

0