Próbuję uruchomić serwer Minecraft na moim serwerze unRAID.
Serwer będzie działał w powłoce, a następnie siedział tam i czeka na dane wejściowe. Aby go zatrzymać, muszę wpisać „stop” i nacisnąć Enter, a następnie uratuje świat i z wdziękiem wyjdzie, a ja wrócę do powłoki. To wszystko działa, jeśli uruchomię to przez telnetting do urządzenia NAS, ale chcę uruchomić to bezpośrednio na urządzeniu.
oto, co wcześniej miałem za pierwszą próbą:
#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 jest folderem, w którym mam plik Craftbukkit.jar i wszystkie pliki świata itp. Po wpisaniu bezpośrednio tej linii ekranu ekran zostanie odłączony i serwer zostanie uruchomiony. Jeśli wykonam ten wiersz ze skryptu, wydaje się, że nie ustawiam ekranu
aby zatrzymać serwer, muszę „wpisać” w STOP, a następnie nacisnąć enter. Moje podejście było
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
aby wysłać na ekran „minecrafta” zatrzymanie tekstu i powrót karetki. Ale to nie działa, nawet jeśli wpisuję go bezpośrednio w linii poleceń. Ale jeśli wykonam polecenie „screen -r”, mogę przejść do ekranu z uruchomionym serwerem, a następnie wpisać „stop” i nastąpi prawidłowe zamknięcie.
Serwer działa dobrze, jeśli telnet się i zrobię to ręcznie, wystarczy uruchomić go bez połączenia z komputerem zdalnym.
#!/bin/bash
i set -x
na początku skryptu, i pokazać nam wyjście śledzenia ze skryptu. Konieczne może być przejrzenie dokumentacji unMENU, aby dowiedzieć się, dokąd trafia ten wynik.
screen
nie udało się uruchomić? Spróbuj dodaćset -x
na górze skryptu (tuż po#!
wierszu) i zgłoś wyniki śledzenia po uruchomieniu skryptu.