Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 13:56:29

Hallo Zusammen,

ich habe einen Minecraft Server aufgesetzt und möchte diesen bei einem Systemausfall / Neustart / Stromausfall automatisch neustarten lassen.

Zuerst hatte ich es mit einen Cronjob versucht, leider vergebens...

Nun mit systemctl:

Ich habe eine Startdatei erstellt: (start_minecraft_server.bash)

#!/bin/bash

#Standard Minecraft
cd /root/Minecraft
java -Xms1024M -Xmx2560M -jar server.jar nogui

(habe hier auch nur den Path zum starten angegeben, z. B. bash start.sh ) -> nix ging

dann unter etc/systemd/system -> minecraft.service erstellt:

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

[Service]
Restart=on-failure
RestartSec=5s
WorkingDirectory=/root/Minecraft
ExecStart=/bin/bash /root/Minecraft/start.sh
TimeoutStartSec=5

[Install]
WantedBy=default.target

dann
chmod +x -> Verzeichnis und die bash Datei ausführbar gemacht

dann

systemctl daemon-reload
systemctl enable minecraft.service
systemctl start minecraft.service

bei Status erscheint dann das:


* minecraft.service - Start Minecraft
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2023-03-05 12:48:57 UTC; 2s ago
Process: 361 ExecStart=/bin/bash /root/Minecraft/start.sh (code=exited, status=127)
Main PID: 361 (code=exited, status=127)
CPU: 2ms

Ich habe schon sämtliche Conf. probiert, auch ein direktstart über die minecraft.service....

Debian 11 ist installiert.....

Hat einer noch eine Idee?

Edit: Auch andere Verzeichniss wie /usr/bin/local/ etc. habe ich schon probiert.

Benutzeravatar
TRex
Moderator
Beiträge: 8074
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von TRex » 05.03.2023 14:31:50

himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
/root/Minecraft
keine gute Idee - jedes Loch in Minecraft gibt den Gästen potentiell die Schlüssel zu deinem Server in die Hand.

Kurz googlen liefert ein vollständiges Setup (ich kenn den Kontext nicht und beziehe mich nur auf die relevanten Teile): https://gist.github.com/dotStart/ea0455714a0942474635

Code: Alles auswählen

[Service]
# Ensure to set the correct user and working directory (installation directory of your server) here
User=minecraft
WorkingDirectory=/opt/minecraft

# You can customize the maximum amount of memory as well as the JVM flags here
ExecStart=/usr/bin/java -XX:+UseG1GC -Xmx3G -jar server.jar --nojline --noconsole

# Restart the server when it is stopped or crashed after 30 seconds
# Comment out RestartSec if you want to restart immediately
Restart=always
RestartSec=30

# Alternative: Restart the server only when it stops regularly
# Restart=on-success

# Do not remove this!
StandardInput=null
tl;dr:
- den User angeben, unter dem es laufen soll
- WorkingDirectory, wie du es schon hast
- ExecStart wie es da steht
- StandardInput=null ist ein quirks, den minecraft vermutlich braucht.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 16:26:05

TRex hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 14:31:50
himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
/root/Minecraft
keine gute Idee - jedes Loch in Minecraft gibt den Gästen potentiell die Schlüssel zu deinem Server in die Hand.

das Stimmt.... root ist eigentlich keine gute Idee. Im Moment läuft der nur im LAN. Ich muss mal schaun, wie ich einen 2. Nutzer anlege.

Da ich aber über Proxmox in einen unpreviligierten LXC drin bin, dürfte im schlimmsten Fall der Container kaputt gehen...

PS: die Conf funktioniert irgendwie trotzdem nicht.... keine Ahnung was ich da falsch mache...

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 16:37:03

Hab einen neuen Nutzer angelegt -> trotzdem das Skript geht auch nicht... vielleicht liegt es am Container selbst?

Benutzeravatar
TRex
Moderator
Beiträge: 8074
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von TRex » 05.03.2023 16:38:10

Loggt die unit was verwertbares?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
Draal
Beiträge: 536
Registriert: 11.03.2005 14:45:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von Draal » 05.03.2023 16:38:41

Ich starte die Minecraft Server so:

Code: Alles auswählen

[Unit]
Description=Minecraft 1.12.2 Area

Wants=network.target
After=network.target

[Service]
User=css
Nice=5
KillMode=none
SuccessExitStatus=0 1
ReadWriteDirectories=/home/css/bukkit-1.12.2
WorkingDirectory=/home/css/bukkit-1.12.2
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar craftbukkit-1.12.2.jar --noconsole
ExecStop=/home/css/mcrcon -H localhost -P 25567 -p <password> stop

[Install]
WantedBy=multi-user.target
Der Server wird auch nach einem Stromausfall geladen.
1xpro Tag wird er neu gestartet, ist halt java.

Mehr dazu in folgendem Thread:
viewtopic.php?t=162736

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 16:41:12

Es kommt immer diese Fehlermeldung:

minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2023-03-05 15:40:21 UTC; 2s ago
Process: 883 ExecStart=/usr/bin/java -XX:+UseG1GC -Xmx3G -jar server.jar --nojline --noconsole (code=exited, status=217/USER)
Main PID: 883 (code=exited, status=217/USER)
CPU: 1ms

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 05.03.2023 16:42:11

himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
ExecStart=/bin/bash /root/Minecraft/start.sh
Ich habe ähnliches für fetchmal gemacht. Was passiert, wenn Du /bin/bash weglässt? Das wäre doppelt gemoppelt wenn im Skript eine shebang Zeile steht.

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 16:45:38

chrbr hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 16:42:11
himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
ExecStart=/bin/bash /root/Minecraft/start.sh
Ich habe ähnliches für fetchmal gemacht. Was passiert, wenn Du /bin/bash weglässt? Das wäre doppelt gemoppelt wenn im Skript eine shebang Zeile steht.
Hatte ich auch schon probiert... geht offenbar auch nicht

neuer Fehlercode, hatte den falschen Nutzer stehen:

* minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2023-03-05 15:44:23 UTC; 2s ago
Process: 945 ExecStart=/usr/bin/java -Xms1024M -Xmx2560M -jar server.jar nogui (code=exited, status=203/EXEC)
Main PID: 945 (code=exited, status=203/EXEC)
CPU: 1ms

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 16:47:17

himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 16:45:38
chrbr hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 16:42:11
himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
ExecStart=/bin/bash /root/Minecraft/start.sh
Ich habe ähnliches für fetchmal gemacht. Was passiert, wenn Du /bin/bash weglässt? Das wäre doppelt gemoppelt wenn im Skript eine shebang Zeile steht.
Hatte ich auch schon probiert... geht offenbar auch nicht

neuer Fehlercode, hatte den falschen Nutzer stehen:

* minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2023-03-05 15:44:23 UTC; 2s ago
Process: 945 ExecStart=/usr/bin/java -Xms1024M -Xmx2560M -jar server.jar nogui (code=exited, status=203/EXEC)
Main PID: 945 (code=exited, status=203/EXEC)
CPU: 1ms
wenn ich bin/bash weglasse kommt folgendes:

* minecraft.service - Minecraft Server
Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2023-03-05 15:46:24 UTC; 13s ago
Process: 975 ExecStart=/etc/skel/Minecraft/start.sh (code=exited, status=203/EXEC)
Main PID: 975 (code=exited, status=203/EXEC)
CPU: 2ms

Mar 05 15:46:24 Minecraft19 systemd[975]: minecraft.service: Failed at step EXEC spawning /etc/skel/Minecraft/start.sh: Exec format error
Mar 05 15:46:24 Minecraft19 systemd[1]: minecraft.service: Main process exited, code=exited, status=203/EXEC
Mar 05 15:46:24 Minecraft19 systemd[1]: minecraft.service: Failed with result 'exit-code'.

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 17:06:09

Hab jezt einen prev. LXC getestet -> dort das gleiche Problem....

Hat das irgendwie mit den Rechten zu tun? Hab ich irgendwas vergessen zu intallieren?

Benutzeravatar
Draal
Beiträge: 536
Registriert: 11.03.2005 14:45:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von Draal » 05.03.2023 17:18:36

Roll doch das Feld mal von hinten auf.

Ich würde mich jetzt als user einloggen und versuchen den MC Server, der im Verzeichnis dieses users liegen sollte, manuell zu starten. Das Startskript, das eigentlich gar nicht nötig ist, würde ich in das /home Verzeichnis des users legen. Hierbei auf owner und Rechte achten. Wenn der Server sich so starten läßt, hast Du schon einmal eine Ursache ausgeschlossen.

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 18:34:39

Ja startet als User, das geht also....

also muss es irgendeine andere Ursache haben.... solange werde ich wohl den Server erstmal manuell starten.

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 05.03.2023 20:05:20

himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 13:56:29
ExecStart=/bin/bash /root/Minecraft/start.sh
Ich muss sagen, dass ich hier noch einen Hintergedanken hatte. Leerzeichen sind ja immer so eine Sache. Je nach Situation muss man sie mit einem Backslash maskieren, in Gänsefüßchen setzen oder weiß der Geier was noch. Wenn die sheband Zeile passt, dann fällt das Problem mit dem Leerzeichen weg.

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 20:40:37

einmal hab ich es so probiert:

Code: Alles auswählen

[Unit]
Description=Minecraft Server
Wants=network-online.target
After=network-online.target

[Service]
# Ensure to set the correct user and working directory (installation directory of your server) here
User=mind
WorkingDirectory=/home/mind
PermissionsStartOnly=true
# You can customize the maximum amount of memory as well as the JVM flags here
ExecStart=start.sh 

# Restart the server when it is stopped or crashed after 30 seconds
# Comment out RestartSec if you want to restart immediately
Restart=always
RestartSec=30


# Alternative: Restart the server only when it stops regularly
# Restart=on-success

# Do not remove this!
StandardInput=null

[Install]
WantedBy=multi-user.target

und einmal so:

Code: Alles auswählen

[Unit]
Description=Minecraft Server
Wants=network-online.target
After=network-online.target

[Service]
# Ensure to set the correct user and working directory (installation directory of your server) here
User=mind
WorkingDirectory=/home/mind
PermissionsStartOnly=true
# You can customize the maximum amount of memory as well as the JVM flags here
ExecStart=/home/mind/start.sh 

# Restart the server when it is stopped or crashed after 30 seconds
# Comment out RestartSec if you want to restart immediately
Restart=always
RestartSec=30


# Alternative: Restart the server only when it stops regularly
# Restart=on-success

# Do not remove this!
StandardInput=null

[Install]
WantedBy=multi-user.target
-> manuell muss ich es aber so starten: ./start.sh -> was gut klappt (als user mind)

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 05.03.2023 21:40:40

Gibt es einen Unterschied bzw. sind beide Versionen ok? Ansonsten hätte ich noch eine andere Idee. Der Server soll doch wahrscheinlich im Hintergrund laufen. Dazu hilft es vielleicht etwas hinzuzufügen. Das ist allerdings ein Schuss ins Blaue.

Code: Alles auswählen

[Service]
Type=forking
Oder ist etwas in start.sh, was so etwas bewirkt?

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 05.03.2023 21:48:18

himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 20:40:37
PermissionsStartOnly=true
Wo kommt das eigentlich her? Im ganzen /usr/lib/systemd/system habe ich keine andere Datei mit so einem Statement gefunden. Ich kenne noch lange nicht alle Finessen von systemd. Deshalb bin ich neugierig.

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 22:55:29

Das mit PermissionsStartOnly=true war eher nur ein Versuch, bedeutet wohl, dass man nur auf exec verweisen kann. Kann man hier auch weglassen.

In start.sh wird auf screen verwiesen, was ein Hintergrund start auslöst.

Könnte mir vorstellen, dass irgendwelche Rechte fehlen, weiß aber nicht mehr weiter, hab eigentlich alles zugewiesen... Vielleicht muss ich screen auch im autostart anders aufrufen...

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 05.03.2023 23:00:48

So sieht es in der start.sh aus

screen -AmdS minecraft java -Xms4096M -Xmx4096M -jar /home/mind/minecraft/spigot-1.19.3.jar nogui

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 06.03.2023 06:57:13

Mit screen kenne ich mich nicht so aus. Eventuell muss man mit den Optionen "spielen". Wenn start.sh bei anderen Rechnern funktioniert, dann ist das wahrscheinlich brotlose Kunst.
himan1000 hat geschrieben: ↑ zum Beitrag ↑
05.03.2023 18:34:39
Ja startet als User, das geht also....
Vielleicht reicht es, mit runuser in start.sh oder einem zusätzlichen Wrapper Skript den richtigen user zu erzwingen. Bei meinem fetchmail habe ich ein Wrapper Skript erstellt, dass mit ExecStart aufgerufen wird. Die relevanten Zeile sind

Code: Alles auswählen

conf=/var/lib/fetchmail/fetchmailrc
user=fetchmail
[...]
# See how we were called.
case "$1" in
    start)
    [...]
	runuser -s /usr/bin/sh $user -c "/usr/bin/fetchmail --daemon 300 --syslog --fetchmailrc $conf"
	[...]
Nur so habe ich fetchmail als User fetchmail starten können.

Benutzeravatar
Draal
Beiträge: 536
Registriert: 11.03.2005 14:45:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von Draal » 06.03.2023 14:21:24

Zum Starten brauchst Du screen nicht.

Du kannst ihn direkt aus der *.service Datei starten.

Code: Alles auswählen

ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft.jar --noconsole

himan1000
Beiträge: 15
Registriert: 05.03.2023 13:46:02

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von himan1000 » 06.03.2023 23:14:46

ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft.jar --noconsole



Klappt leider auch nicht...;-(((((((((((

Benutzeravatar
MSfree
Beiträge: 10773
Registriert: 25.09.2007 19:59:30

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von MSfree » 07.03.2023 08:03:52

himan1000 hat geschrieben: ↑ zum Beitrag ↑
06.03.2023 23:14:46
Klappt leider auch nicht...;-(((((((((((
Hast du eigentlich immer noch nicht in die Systemlogs geschaut, wie TRex oben bereits vorgeschlagen hatte? Da findet man praktisch immer die Ursache. Ich könnte wetten, daß es bei dir nur an den fehlenden Pfaden in deinem Programmaufruf liegt.

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von chrbr » 07.03.2023 11:21:04

himan1000 hat geschrieben: ↑ zum Beitrag ↑
06.03.2023 23:14:46
Klappt leider auch nicht...;-(((((((((((
MSfree hat schon recht. Da systemd etwas kryptisch ist folgen ein Paar Beispiele für den user root.

Code: Alles auswählen

# Gibt laufen Ausgaben in der Konsole aus. Vor dem Minecraft Aufruf starten.
journalctl -f

# Um das Log in nachhinein rückwärts zu lesen.
journalctl -r

# Infos zu Fehlschlägen
systemctl --failed

# Detaillierte Infos zu einen Service
systemctl status NAME-VOM-SERVICE.EVENTUELL-MIT-NACHFOLGENDEM.service

# Old-School die Logs durchforsten
find /var/log/ -type f|xargs grep -i MINESONSTWAS
Irgendetwas muss sich finden lassen.

Benutzeravatar
TRex
Moderator
Beiträge: 8074
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl

Beitrag von TRex » 07.03.2023 12:47:06

journalctl -eu minecraft.service

-e scrollt zum Ende
-u minecraft.service filtert auf diese eine unit

Dabei fällt die Notwendigkeit raus, die Unit dafür zu starten, irgendwas rückwärts zu lesen oder ähnliches ;) Ich finde das nicht besonders kryptisch. Den Namen der Unit sollte der TE schon kennen.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Antworten