Как я могу получить экран для выполнения команды, а затем отключить (то есть автоматически в одном скрипте без дополнительного ввода после первоначального запуска скрипта)? Например, я запускаю myscript.sh, и он автоматически запускает сеанс экрана, выполняет команду, а затем отключается.
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'