Я пытаюсь запустить сервер Minecraft на моем сервере unRAID.
Сервер будет работать в оболочке, а затем сидеть и ждать ввода. Чтобы остановить его, мне нужно набрать «стоп» и нажать клавишу ввода, и тогда это спасет мир и изящно выйдет, и я вернусь в оболочку. Это все работает, если я запускаю его через telnetting в окно NAS, но я хочу запустить его прямо на коробке.
это то, что я ранее имел в качестве первой попытки:
#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 - это папка, в которой у меня есть Craftbukkit.jar и все мировые файлы и т. Д. Если я наберу эту строку экрана напрямую, экран отсоединится и сервер запустится. Если я выполню эту строку из скрипта, то, похоже, не будет экрана
для остановки сервера мне нужно «напечатать» в STOP и затем нажать Enter. Мой подход был
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
отправить на экран «майнкрафт» текстовый останов и возврат каретки. Но это не сработает, даже если я наберу его прямо в командной строке. Но если у меня «screen -r», я могу попасть на экран с запущенным сервером, а затем набрать «stop», и он отключится правильно.
Сервер работает нормально, если я подключаюсь по сети и делаю это вручную, просто нужно запустить его без подключения к удаленному компьютеру.
#!/bin/bash
и set -x
в верхней части сценария, и показать нам вывод трассировки из сценария. Возможно, вам придется заглянуть в документацию unMENU, чтобы узнать, куда идет этот вывод.
screen
не удалось запустить? Попробуйте добавитьset -x
в начало скрипта (сразу после#!
строки) и сообщить результат трассировки при запуске скрипта.