Назад | Перейти на главную страницу

Процесс открытия экрана в терминале из скрипта

У меня есть сервер 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, который каждые два часа передает команду остановки процессу 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

Любые идеи?

На мой взгляд, лучшим подходом было бы использование сценария инициализации для управления вашим приложением.

Некоторые примеры :

Убедитесь, что ваш процесс записывает свои выходные данные в файл, и с помощью команды "tail -f" вы сможете "иметь процесс всегда на мониторе сервера, а также доступным через ssh"