У меня есть сервер Minecraft работает в экране, и прямо сейчас, это просто скрипт, который запускает Java так:открыт экран процесса в терминале из сценария
screen -dmS mc java -Xincgc -Xms1024M -jar craftbukkit-1.6.4-b2882.jar
В основном это только начинается Minecraft в экран экрана в фоновом режиме, и я могу получить к нему доступ с screen -r mc
через SSH. Однако то, что я хотел бы сделать, заключается в том, что процесс всегда находится на мониторе сервера, а также доступен через ssh с screen -x mc
. Кроме того, у меня есть скрипт restart.sh, который обрабатывает команду stop для процесса mc каждые два часа, а затем запускает скрипт start.sh. Сервер находится на уровне запуска 3, поэтому я не думаю, что gnome-terminal -e "screen -x mc"
будет работать. Кроме того, похоже, что скрипт перезапуска запускает mc вне экрана. Когда я нахожу SSH на сервере, screen -ls
ничего не появляется, но процесс сервера minecraft запущен, и я могу подключиться к нему. Вот сценарий:
#!/bin/sh
screen -x mc
screen -s mc stuff "say Server Restarting in 15 minutes."
screen -s mc -X eval "stuff \015"
sleep 600
screen -x mc
screen -x mc -X stuff "say Server restarting in 5 minutes."
screen -s mc -X eval "stuff \015"
sleep 240
screen -x mc
screen -s mc -X stuff "say Server restarting in 1 minute."
screen -s mc -X eval "stuff \015"
sleep 60
screen -S mc -X stuff "say Server restarting."
screen -S mc -X eval "stuff \015"
screen -S -X stuff "kickall Server Restarting, it should be back up in about a minute."
screen -S mc -X eval "stuff \015"
sleep 2
screen -S mc -X stuff "stop"
screen -S mc -X eval "stuff \015"
sleep 30
screen -wipe
sleep 3
cd /minecraft/server/craftbukkit
./start.sh
Любые идеи?
Это похоже на работоспособный вариант, но, боюсь, я не совсем понимаю бит перезапуска. Как я могу остановить сервер из задания cron? Кажется, что любая команда, которую я делаю, будет идти в bash, а не в minecraft. Как бы то ни было, я набиваю команду stop из cron-скрипта в mc-процесс. Не могли бы вы немного пояснить? – InventiousTech
Я обновил исходный ответ, добавив тестовый образец за минуту. – Vlad
Спасибо, я думаю, что это сработает. – InventiousTech