Ich versuche, einen Minecraft-Server auf meinem unRAID-Server auszuführen.
Der Server wird in der Shell ausgeführt und wartet dort auf Eingaben. Um es zu stoppen, muss ich 'stop' eingeben und die Eingabetaste drücken, und dann wird die Welt gerettet und ich bin wieder in der Shell. Das alles funktioniert, wenn ich es per Telnetting in die NAS-Box starte, es aber direkt auf der Box ausführen möchte.
Das hatte ich vorher als ersten Versuch:
#define USER_SCRIPT_LABEL Start Minecraft server
#define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first
cd /mnt/disk/sde2/MCunraid
screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar
MCunraid ist der Ordner, in dem ich das Craftbukkit.jar und alle Weltdateien usw. habe. Wenn ich diese Bildschirmzeile direkt eingebe, wird der Bildschirm getrennt eingerichtet und der Server gestartet. Wenn ich diese Zeile innerhalb des Skripts ausführe, scheint sie keinen Bildschirm einzurichten
Zum Stoppen des Servers muss ich STOP 'eingeben' und dann die Eingabetaste drücken. Mein Ansatz war
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
Senden Sie auf dem Bildschirm 'minecraft' den Text Stop und einen Wagenrücklauf. Aber das funktioniert nicht, auch wenn ich es direkt in die Befehlszeile eingebe. Aber wenn ich 'screen -r' bekomme, wenn der Server läuft, dann tippe 'stop' und es wird richtig heruntergefahren.
Der Server läuft gut, wenn ich telnete und es manuell mache, muss es nur laufen, ohne von meinem entfernten Computer verbunden zu sein.
#!/bin/bash
und set -x
an der Spitze des Skripts, und zeigen uns die Trace - Ausgabe aus dem Skript. Möglicherweise müssen Sie in der unMENU-Dokumentation nachsehen, wo diese Ausgabe hingeht.
screen
nicht funktioniert hat ? Versuchen Sie,set -x
am oberen Rand des Skripts (direkt nach der#!
Zeile) einzufügen und die Ablaufverfolgungsausgabe zu melden, wenn Sie das Skript ausführen.