Sto cercando di eseguire un server Minecraft sul mio server unRAID.
Il server verrà eseguito nella shell, quindi siederà lì in attesa di input. Per fermarlo, devo digitare 'stop' e premere invio, quindi salverà il mondo e uscirà con grazia, e sono tornato nella shell. Funziona tutto se lo eseguo tramite telnetting nella casella NAS, ma voglio eseguirlo direttamente sulla casella.
questo è quello che ho avuto in precedenza come primo tentativo:
#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 è la cartella in cui ho Craftbukkit.jar e tutti i file del mondo, ecc. Se scrivo direttamente quella linea di schermo, lo schermo si configura e il server si avvia. Se eseguo quella riga all'interno dello script, non sembra impostare uno schermo
per arrestare il server, devo "digitare" in STOP e quindi premere invio. Il mio approccio è stato
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
per inviare allo schermo 'minecraft' la fermata del testo e un ritorno a capo. Ma non funziona, anche se lo scrivo direttamente sulla riga di comando. Ma se 'screen -r' posso arrivare allo schermo con il server in esecuzione, quindi digitare 'stop' e si spegne correttamente.
Il server funziona bene se telnet in e lo faccio manualmente, ho solo bisogno di eseguirlo senza essere collegato dal mio computer remoto.
#!/bin/bash
e set -x
nella parte superiore dello script e mostraci l'output di traccia dallo script. Potrebbe essere necessario consultare la documentazione di unMENU per scoprire dove va l'output.
screen
non è stato avviato? Prova ad aggiungereset -x
nella parte superiore dello script (subito dopo la#!
riga) e segnala l'output di traccia quando esegui lo script.