Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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
- 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 nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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...
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Hab einen neuen Nutzer angelegt -> trotzdem das Skript geht auch nicht... vielleicht liegt es am Container selbst?
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Loggt die unit was verwertbares?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Ich starte die Minecraft Server so:
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
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
1xpro Tag wird er neu gestartet, ist halt java.
Mehr dazu in folgendem Thread:
viewtopic.php?t=162736
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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
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
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
wenn ich bin/bash weglasse kommt folgendes:himan1000 hat geschrieben:05.03.2023 16:45:38Hatte 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
* 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'.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Hab jezt einen prev. LXC getestet -> dort das gleiche Problem....
Hat das irgendwie mit den Rechten zu tun? Hab ich irgendwas vergessen zu intallieren?
Hat das irgendwie mit den Rechten zu tun? Hab ich irgendwas vergessen zu intallieren?
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Ja startet als User, das geht also....
also muss es irgendeine andere Ursache haben.... solange werde ich wohl den Server erstmal manuell starten.
also muss es irgendeine andere Ursache haben.... solange werde ich wohl den Server erstmal manuell starten.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
einmal hab ich es so probiert:
und einmal so:
-> manuell muss ich es aber so starten: ./start.sh -> was gut klappt (als user mind)
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
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Oder ist etwas in start.sh, was so etwas bewirkt?
Code: Alles auswählen
[Service]
Type=forking
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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...
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...
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
So sieht es in der start.sh aus
screen -AmdS minecraft java -Xms4096M -Xmx4096M -jar /home/mind/minecraft/spigot-1.19.3.jar nogui
screen -AmdS minecraft java -Xms4096M -Xmx4096M -jar /home/mind/minecraft/spigot-1.19.3.jar nogui
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Nur so habe ich fetchmail als User fetchmail starten können.
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"
[...]
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
Zum Starten brauchst Du screen nicht.
Du kannst ihn direkt aus der *.service Datei starten.
Du kannst ihn direkt aus der *.service Datei starten.
Code: Alles auswählen
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft.jar --noconsole
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
ExecStart=/usr/bin/java -Xmx1024M -Xms1024M -jar minecraft.jar --noconsole
Klappt leider auch nicht...;-(((((((((((
Klappt leider auch nicht...;-(((((((((((
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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
Re: Minecraft Webserver Proxmox als LXC (unprev.) / Autostart systemctl
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.
-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 nicht • Don't break debian! • Wie man widerspricht
Windows ist doof, Linux funktioniert nicht • Don't break debian! • Wie man widerspricht