64

Как я могу получить экран для выполнения команды, а затем отключить (то есть автоматически в одном скрипте без дополнительного ввода после первоначального запуска скрипта)? Например, я запускаю myscript.sh, и он автоматически запускает сеанс экрана, выполняет команду, а затем отключается.

4 ответа4

99

Это легко:

screen -d -m yourcommand
37

Чтобы запустить одну команду на экране и отсоединиться, вы можете попробовать:

screen -dm sleep 10

Чтобы запустить несколько команд, попробуйте:

screen -dm bash -c "sleep 10; myscript.sh"

Обратите внимание, что когда программа завершает работу, экран (по умолчанию) убивает окно, в котором она находилась.

Если вы не хотите, чтобы ваш сеанс был убит после завершения скрипта, добавьте exec sh в конце, например:

screen -dm bash -c 'sleep 5; exec sh'

Чтобы перечислить все ваши сессии, попробуйте:

screen -list

Связанные: запуск экрана Unix, команда запуска, отсоединение.

13

Чтобы начать новую сессию в фоновом режиме с именем «сонный»

screen -S sleepy -dm sleep 60

Для того, чтобы убить "сонный" сеанс

screen -S sleepy -X quit      
2
screen -dmS screen_session_name bash -c 'echo "doing stuff"; exec bash'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .