wie würdet ihr den server starten lassen nach reboot?

4 Antworten

Meine erste Wahl bei Game Servern ist LinuxGSM. Minecraft wird unterstützt.

Über das Tool kannst du Game Server wie z.B. Minecraft einfach installieren, verwalten und starten/stoppen. Die Server Konsole kann auch einfach erreicht werden. Der Game Server ist dann auch im Auto Start.

Fall LinuxGSM nicht unterstützt wird oder genutzt werden möchte, würde ein systemd Service anlegen. Damit kannst du den Server starten, stoppen und auch zum Auto Start hinzufügen. Du kannst auch ein User angeben, unter dem der Service laufen soll.

Auch wenn du über systemd die Konsolenausgabe sehen kannst, kannst du kein Eingabe tätigen. Du kannst also keine Command ausführen.

Eine mögliche Quelle über Systemd Services.


BoomCrafterXDHD 
Beitragsersteller
 30.12.2022, 23:27

ok systemd kenn ich aber ich wüsste nicht wie ich es machen soll mit screen also brauche ja ne datei habe keine ahnugn wie ich das einstellen muss

0
tide1109  31.12.2022, 00:00
@BoomCrafterXDHD

/etc/systemd/system/minecraft.service:

[Unit]
Description=Minecraft Server
After=network.target

[Service]
User=minecraft
WorkingDirectory=[Falls nötig Working Directory setzen, alternativ Zeile entfernen]
ExecStart=java -jar /.../server.jar ...

[Install]
WantedBy=multi-user.target

Den Namen der Service Datei und die Description kannst du frei wählen. Der User sollte für dich korrekt gesetzt sein. Den Pfad zur server.jar mit deinen gewünschten Startparametern setzen. ExecStart ist dein Start Befehl mit absoluten Pfaden. Gegebenfalls Working Directory setzen.

Das Programm screen brauchst du nicht, es würde sogar Probleme bereiten. Der Server bleibt gestartet, auch wenn du deine SSH Session beendest. Ohne screen hast du keine Chance Minecraft Commands vom Server aus auszuführen.

https://unix.stackexchange.com/a/612118

Hier findest du noch eine sehr ähnlichen Vorschlag zu meinem. Falls du Commands zum Server senden möchtest, gibt es der Antwort auch eine Möglichkeit für systemd Sockets.

Die Befehle zum starten, stoppen, Auto Start aktivieren und co. findest du ebenfalls bei der Antwort.

0
imsonoah  31.12.2022, 00:10
@tide1109
Das Programm screen brauchst du nicht, es würde sogar Probleme bereiten

neee, hab es genauso gemacht mit screen.

Einfach in deiner start.sh:

#!/bin/bash

cd /PFAD/start.sh
screen -d -m -S mc bash PFAD/start.sh

exit 0

Dann mit crontab (siehe meine antwort)

0
tide1109  31.12.2022, 00:40
@imsonoah

Deine Lösung mit einem eigenen systemd Script startet den Server, aber es ist keine gute Unsetzung für systemd.

Dein screen Befehl startet den Minecraft Server im dettached Modus (siehe "man screen" unter "-d -m"). Danach wird der Screen Befehl und somit das Script beendet. Das Script läuft also nur so lange, bis die screen Session erfolgreich erstellt wurde.

Mein Beispiel systemd Service nutzt implizit den ExitType=main. Damit wird der Service als laufend betrachtet, während der ExexStart Befehl läuft. In deinem Fall wird der Minecraft Server für systemd nur 1s "laufen".

In meinem Fall läuft der java -jar ... Befehl so lange, wie der Minecraft Server läuft. Der Server kann so auch über systemd wieder gestoppt oder neugestartet werden.

In deiner Antwort nutzt du ein bestehenden systemd Service, der dann dein Script ausführen wird. Auch wenn beide Vorschläge systemd benutzen, ist es ein völlig andere Ansatz.

Meinen Vorschlag ist der schönere Weg. Mit einem eigenen systemd Service kann der Server u.A. leicht gestopp, gestartet und neugestartet werden. Die Abhängigkeit screen wird dazu auch nicht benutzt.

Sofern unsere beiden Vorschläge nicht vermischt werden, funktionieren beide auch. Funktionieren im Sinne von "Minecraft Server beim hochfahren starten".

0
imsonoah  31.12.2022, 01:11
@tide1109

Klingt alles sehr logisch von dir, aber mein Server läuft und das seit guten 20-25 Tagen

0

Ja, über rc-local:

sudo systemctl enable rc-local

Wenn:

sudo systemctl status rc-local

inaktiv ist.

Dann:

sudo nano /etc/rc.local

dort schreibst du dann rein (unten nach dem "fi"):

sudo /DEINGANZERPFAD/server_start.sh

Dann teste es


BoomCrafterXDHD 
Beitragsersteller
 30.12.2022, 21:39

und wie kann ich das von einem bestimmten user machen lassen in meinem fall war es der user minecraft

0

Bash runcommands

Zu finden unter

/etc/rc.local

Was vor Exit 0 steht würde beim Start automatisch mit root ausgeführt.

Ich nutze bei meinem Server zuhause Crafty Controller, das ist eine Management Oberfläche um deine MC Server zu konfigurieren, starten, stoppen, automatisch zu starten etc.

https://craftycontrol.com/

Bild zum Beitrag

 - (Server, ARK, Serverprobleme)

BoomCrafterXDHD 
Beitragsersteller
 30.12.2022, 21:40

ok aber habe auch ne cloud die kann der dann nicht managen glaube trotzdem danke

0