Создание сценария оболочки для использования с экраном?
Некоторое время я работал над созданием сценария оболочки, просматривая различные форумы, в том числе и этот, и используя все виды поисковых терминов, но безуспешно. Я надеюсь, что я не создаю дубликат вопроса.
У нас есть игровой сервер, и мы должны инициализировать экран вручную после перезагрузки или сбоя, но хотели бы упаковать несколько наших команд в один скрипт, чтобы уменьшить время простоя. Я хотел бы создать сценарий, который создает сеанс экрана, переключается на него и выполняет сценарий оболочки в новом сеансе.
Я попробовал код ниже в сценарии оболочки.
#!/bin/sh
screen -S tf2
./startserver.sh
Когда я выполняю скрипт, он создает экран "tf2" и входит в сеанс так, как я хотел. Сервер не запускается там, где я хотел, но загружается вне сеанса экрана, где я его выполнял. Нам нужно, чтобы он был внутри экранной сессии, чтобы наш игровой сервер мог быть подключен к сети без присутствия терминала.
Я не лучший в сценариях оболочки, но я хочу учиться, я делаю что-то не так? Есть ли другой способ, которым я должен идти об этом?
1 ответ
Как указано в ОПИСАНИИ man screen
если вы хотите выполнить команду на экране, ее необходимо добавить к экрану выдачи команды. Так что в вашем случае это будет выглядеть
#!/bin/sh
screen -S tf2 ./startserver.sh
Тем не менее, поскольку я не знаю, находится ли ваш shell-скрипт в рабочем каталоге экрана, сделать это более умно
#!/bin/sh
screen -S tf2 /full/path/to/startserver.sh