Snažím se spustit minecraft server na mém unRAID serveru.
Server poběží v shellu a pak tam bude čekat na vstup. Abych to zastavil, musím napsat ‚stop‘ a stisknout enter, a pak to zachrání svět a elegantně odejde a jsem zpátky ve skořápce. To vše funguje, když to spustím přes telnetting do boxu NAS, ale chci to spustit přímo na boxu.
toto jsem měl předtím jako první pokus:
#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 je složka, kde mám Craftbukkit.jar a všechny světové soubory atd. Pokud napíšu tento řádek obrazovky přímo, obrazovka se odpojí a server se spustí. Pokud tento řádek spustím ze skriptu, nezdá se, že by nastavil obrazovku
pro zastavení serveru musím ‚zadat‘ STOP a poté stisknout enter. Můj přístup byl
screen -S minecraft -X stuff "stop $(echo -ne 'r')"
odeslat na obrazovku „minecraft“ text s-t-o-p a návrat vozíku. Ale to nefunguje, i když to napíšu přímo do příkazového řádku. Ale pokud ‚screen -r‘ dostanu na obrazovku se spuštěným serverem, pak napište ‚stop‘ a ono se to správně vypne.
Server běží dobře, pokud se připojím k telnetu a udělám to ručně, stačí jej spustit bez připojení ze vzdáleného počítače.
Přijatá odpověď:
Dokážu vyřešit alespoň část problému:proč ten stop
část nefunguje. Experimentálně, když spustíte relaci obrazovky v odděleném režimu (screen -d -m
), není vybráno žádné okno, takže vstup bude odeslán později s screen -X stuff
je prostě ztracen. Musíte explicitně určit, že chcete posílat úhozy do okna 0 (-p 0
). To je každopádně dobrý nápad pro případ, že z nějakého důvodu vytvoříte v této relaci obrazovky další okna.
screen -S minecraft -p 0 -X stuff "stop^M"
(Překlad obrazovky ^M
na control-M, což je znak odeslaný Enter klíč.)
Problém se spuštěním relace ze skriptu pravděpodobně souvisí s unMENU.
Související:Jak zabránit zobrazení uvítací obrazovky / zamykací obrazovky po nečinnosti ve Windows 8?