Minecraft Server Konsole wenn als service gestartet?
Hallo, hoffe hier kann mir jemand weiterhelfen,
ich habe auf nem rpi4 einen paper-mc Server laufen. Dieser startet selbst, da ich nen Service mit der jar eingerichtet habe. Nun ist mein Problem, dass ich nicht auf die Konsole zugreifen kann, da es ja im Hintergrund laeuft. Gibts eine Moeglichkeit darauf zuzugreifen?
3 Antworten
Ü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.
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.
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.
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"
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.
Vermutlich als systemd-unit. Kann das sein?
Screen ist ja nur als Terminal-Multiplexer "notwendig".
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
Tut mir Leid ihr Profis, ich bin blutiger Anfaenger. Einiges versteh ich schon aber eben nicht alles, drum frag ich ja nach.
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
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
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."