Создание сценария оболочки для использования с 'экраном'?

Я работал над созданием сценария оболочки некоторое время, просмотром различных форумов включая этого и использования всех видов критериев поиска без удачи. Я надеюсь, что не создаю дублирующийся вопрос.

У нас есть игровой сервер, и мы должны инициализировать экран вручную после перезагрузки или катастрофического отказа, но хотели бы упаковать наши немного команд в один сценарий для понижения времени простоя. То, что я хотел бы сделать, должно сделать сценарий, который создает экранную сессию, переключается на нее и выполняет сценарий оболочки в рамках новой сессии.

Я попробовал код ниже в сценарии оболочки.

#!/bin/sh
screen -S tf2
./startserver.sh

Когда я выполняю сценарий, он создает экран 'tf2' и вводит сессию, как я хотел. Сервер не запускается, где я хотел его к однако, он загружается за пределами экранной сессии, где я выполнил его. Нам нужен он, чтобы быть в экранной сессии так, чтобы наш игровой сервер мог быть онлайн ни с кем посещающим терминал.

Я еще не являюсь лучшим со сценариями оболочки, но я готов учиться, я делаю что-то не так? Есть ли иначе, я должен идти об этом?

3
задан 29 November 2016 в 01:54

1 ответ

Как указано в РЕЗЮМЕ man screen, если Вы хотите выполнить команду на экране, он должен быть добавлен на экран издания команды. Таким образом в Вашем случае это было бы похоже

 #!/bin/sh
screen -S tf2 ./startserver.sh

все же, поскольку я не знаю, находится ли Ваш сценарий оболочки в рабочем каталоге экрана, Это более умно, чтобы сделать это

 #!/bin/sh
screen -S tf2 /full/path/to/startserver.sh
4
ответ дан 1 December 2019 в 15:52

Другие вопросы по тегам:

Похожие вопросы: