screen
. Программа создавалась, чтобы запускать несколько терминальных сессий внутри одного терминала. Надобность в такой возможности резко снизилась в связи с широким распространением эмуляторов терминала с поддержкой вкладок (вроде Gnome Terminal). Впрочем, до сих пор может быть полезна на удалённых машинах.Однако есть у
screen
и другое полезное свойство: возможность отсоединять виртуальные сеансы от физического терминала и подсоединять к другому. Это, в частности, позволяет запускать долгоиграющие процессы на удалённых машинах, без необходимости быть постоянно на них залогиненным.Способ использования такой:
1. зайти на удалённую машину (по
ssh
)2. запустить там
screen
3. запустить некий долгий процесс внутри сессии
screen
4. отсоединить сессию
screen
, нажав CTRL-A и затем d (вообще, все внутренние команды screen
начинаются с CTRL-A, например, CTRL-A + ? покажет краткую справку)5. выйти из удалённой системы (всё запущенное внутри screen продолжит работать)
6. уйти обедать, лечь спать, уехать в отпуск, заняться другими делами
7. когда захочется, войти повторно на удалённую машину, и подсоединиться к уже запущенной сессии
screen
, набрав screen -r
.Таким же образом можно запускать
screen
и на локальной машине. Это позволит, например, уменьшить количество одновременно открытых терминалов, а также позволит спокойно перезапускать иксы, не опасаясь за то, что какой-то работающий в фоне процесс может прерваться.Дополнение: Как заметил в комментариях Ivan A-R, на одной машине можно открыть несколько разных сессий
screen
:ssh ...
screen -S wget
[Ctrl-A d]
screen -S backup
[Ctrl-A d]
exit
ssh ...
screen -r backup
[Ctrl-A d]
screen -r wget