Установка и использование Screen на облачном сервере Ubuntu. Настройка утилиты screen в Linux Как закрыть screen в putty

Вы залогинились на ваш удаленный сервер через ssh, радостно стучите по клавиатуре, делая свои какие-то админские дела и опа! Символы перестали печатться и вывалилось то самое сообщение, которое, порой, вызывает непреодолимое желание разбить клавиатуру. Connection closed. Знакомая ситуация? Да-да, ваша сессия только что аварийно оборвалась и все придется делать заново… Этого можно избежать, если использовать screen. Он не только позволит сохранить вашу сессию в целости и сохранности, но еще и позволит держать открытыми несколько сессий в одном окошке терминала

Что такое screen?
Сначала посмотрим man-страницу: “Screen - это полноэкранный оконный менеджер, который позволяет разделить физический терминал между несколькими независимыми процессами (обычно интерактивными облочками)”.
У screen есть несколько отличительных особенностей, которые могут сильно помочь при выполнении задач на удаленных серверах через ssh. Я расскажу о трех, самых часто используемых мной фичах: многооконность, логирование и сессии. За более подробными деталями придется обратиться к man-странице.

Установка screen
Скорее всего, screen уже есть в вашей системе. Проверить это можно командой

Если which не дал результатов, то установите screen при помощи пакетного менеджера вашей системы. На моих серверах, в основном, CentOS и Debian, поэтому я ставлю screen так:

# yum install screen (для CentOS)
# apt-get install screen (для Debian)

Попадается и FreeBSD, в этом случае я использую порты:

# cd /usr/ports/sysutils/screen
make install clean

Использование screen
Screen запускается из командной строки также, как и любое приложение:)

Вы можете получить сообщение о том, что screen запущен, а можете и не получить… Зависит от вашей системы. Если вы не получили сообщения, то вы можете подумать, что ничего не произошло. Однако это не так. Вы уже внутри терминала, запущенного в screen. Это нормальный полнофункциональный шелл, за исключением нескольких специальных команд. Screen использует клавиатурную комбинацию Ctrl+A для подачи команд терминалам внутри себя. Попробуйте нажать Ctrl+A, а затем?
Вы увидите примерно следующее:

Screen key bindings, page 1 of 2.

Command key: ^A Literal ^A: a

break ^B b lockscreen ^X x reset Z
clear C log H screen ^C c
colon: login L select ” ‘
copy ^[ [ meta a silence _
detach ^D d monitor M split S
digraph ^V next ^@ ^N sp n suspend ^Z z
displays * number N time ^T t
fit F only Q title A
flow ^F f other ^A vbell ^G
focus ^I pow_break B version v
help ? pow_detach D width W
history { } prev ^P p ^? windows ^W w
info i readbuf < wrap ^R r
kill K redisplay ^L l writebuf >
lastmsg ^M m remove X xoff ^S s
license , removebuf = xon ^Q q

Screen воспринимает командные клавиатурные комбинации после нажатия Ctrl+A. Вы можете изменить это поведение при помощи конфиг-файла $HOME/.screenrc

Многооконность
Screen, как и большинство оконных менеджеров, поддерживает работу с несколькими окнами. Это очень удобно для выполнения параллельных задач без открытия новых ssh-сессий. Например, у меня постоянно открыто четыре или пять сессий с несколькими задачами в каждой. Раньше мне бы пришлось открыть порядка 15 терминалов, логинов, сессий.. Утомительно, не так ли? Эти неудобства полностью решает screen. Теперь я вполне могу обойтись одним терминалом.

Новое окно открывается комбинацией клавиш “Ctrl+a c”. После нажатия вы увидите новый терминал с вашим приглашением в том же окне. При этом предыдущие окна также продолжают работать. Давайте попробуем: запустите screen и в нем top

Mem: 506028K av, 500596K used, 5432K free,
0K shrd, 11752K buff
393660K cached


6538 root 25 0 1892 1892 596 R 49.1 0.3
6614 root 16 0 1544 1544 668 S 28.3 0.3
7198 admin 15 0 1108 1104 828 R 5.6 0.2

Теперь откройте новое окно, нажав “Ctrl+a c”

Вернитесь обратно, нажав Ctrl+a n

Mem: 506028K av, 500588K used, 5440K free,
0K shrd, 11960K buff
Swap: 1020116K av, 53320K used, 966796K free
392220K cached

PID USER PRI NI SIZE RSS SHARE STAT %CPU %ME
6538 root 25 0 1892 1892 596 R 48.3 0.3
6614 root 15 0 1544 1544 668 S 30.7 0.3

top остался в прежнем состоянии. Вы можете создать несколько окон и переключаться между ними используя Ctrl+a n для переключения на следующеее окно и Ctrl+a p для переключения на предыдущее. При этом каждый запущенный процесс останется в рабочем состоянии.

Отключаемся от screen
Есть два способа отключиться от screen: первый - это просто разлогиниться. Вы можете использовать клавиатурную комбинацию Ctrl+a K или просто набрать exit. Этот способ “убьет” текущее окно, если у вас их несколько или совсем остановит screen.
Второй способ заключается в отсоединении . Этот способ оставляет текущий процесс запущенным и просто отключает вас от терминала. Например, если вы через ssh-сессию запускаете какой-то очень длительный процесс, не требующий вашего внимания, то вы можете просто отключиться от screen при помощи Ctrl+a d. Это вернет вас обратно в исходную оболочку. Все процессы, запучшенные в screen, при этом остаются работающими и вы можете подключиться к ним позже.

Подключение к сессии
Вы компилируете большую программу на удаленном сервере, используя screen. И конечно же, по законам Мэрфи, соединение обрывается по независящим от вас причинам. Не стоит впадать в панику, screen все сохранил:) Просто соединитесь с сервером еще раз и посмотрите запущеные под screen процессы при помощи

# screen -ls
There are screens on:
31619.ttyp2.server (Detached)
4731.ttyp2.server (Detached)
2 Sockets in /tmp/screens/S-root.

В этом примере запущено две screen-сессии. Для подключения к нужной из них используйте команду

#screen -r 31619.ttyp2.server

Просто используйте screen с флагом r и именем сессии для повторного подключения. Это очень удобно. Можно, например, запустить какой-то длительный процесс на работе и, вернувшись домой, продолжить контроль за его выполнением.

Логирование
Мне кажется очень важным порой сохранять полный лог своих действий. К счастью, screen легко с этим справляется. Просто активируйте логирование нажатием Ctrl+a H. Screen будет продолжать логирование на протяжении всего процесса работы. Бывает очень полезно вернуться назад и посмотреть порядок необходимых действий.

И еще немного…
Screen может вести мониторинг активности окна. Если вы качаете что-то большое, компилируете программу или просто выполняете длительный процесс, вы можете долгое время наблюдать пустой терминал без признаков активности. А процесс, тем временем, продолжает выполняться. Или, наоборот, смотреть на поток отладочной информации, ожидая окончания процесса. Для начала слежения перейдите в терминал, который вы хотите наблюдать и нажмите Ctrl+a M для слежения за активностью (сработает при появлении новой информации) или Ctrl+a _ для слежения за бездействием (сработает при прекращении поступления информации в терминал). Затем вы можете спокойно переключиться в другое окно или создать новое. При наступлении события, screen предупредит вас об этом сообщением с номером окна в заголовке терминала. Для быстрого переключения в это окно используйте Ctrl+a ” (это символ кавычки). Вы увидите список всех активных окон на данный момент. Для перехода в нужное можно использовать стрелки или просто набрать номер нужного окна. Для прекращения наблюдения перейдите в нужное окно и отмените мониторинг той же командой. Например, для прекращения наблюдения за активностью нажмите Ctrl+a M

Имеет множество функций. Очень удобно использовать эту утилиту при удаленном подключении к системе по ssh. Но наиболее частое ее применение - сворачивание в фон программ, которые сами этого не умеют, с возможностью последюущего возврата к ним. это может быть полезно при работе с программами, которые реализованы не в виде «демон+клиент», а единым целым, и не работают без запуска интерфейса. Типичный пример - rtorrent, который при всех своих преимуществах запускается только в виде консольного интерфейса, а в фон уходить не умеет, можно только «выйти вообще». Его и возьмем в качестве примера.

Запуск и основы работы Screen

    Screen создает отдельные объекты, называемые иногда «скринами». Каждый скрин - это что-то вроде окна, которое можно свернуть-развернуть, если проводить аналогию с графическим интрефейсом. Только вместо окна вы получаете виртуальную консоль, которую можно отправить в фон или вывести на передний план, и в которой запускается указанное приложение.

    Простейший запуск осуществляется командой:

screen

    При запуске в таком виде, т.е. без параметров, программа создаст новый скрин, в котором откроет сессию командной оболочки, как если бы вы залогинились в tty-консоли или открыли новую вкладку в графическом терминале, для наглядности выполните что-нибудь в командной строке - например, ls .

    Теперь о том, как свернуть запущенный скрин вместе со всем, что в нем работает. Для этого нужно нажать Ctrl + A , после чего нажать D . в принципе, это единственная комбинация, которую простому пользователю стоит запомнить. Сtrl + A переведет screen в командный режим. клавиша D даст команду свернуть текущий скрин. Теперь вы можете закрыть терминал или разлогиниться с tty-консоли - запущенный в свернутом скрине процесс продолжит работу в фоне.

    Для того, чтобы вернуться к свернутому скрину, достаточно запустить:

screen -r

    Ключ -r как раз и укажет программе, что нужно развернуть свернутый скрин (если таковой, конечно, имеется). Перед вами должна предстать та самая сессия в консоли, которую вы свернули, со всем, что в ней было.

    Теперь выйдете из сессии с помощью команды exit . Screen сообщит о завершении своей работы. Таким образом, вам достаточно выйти из запущенного в скрине процесса, а screen выключится сама.

screen rtorrent

    Перед вами открылся rtorrent, его можно свернуть, а потом вернуться к нему, как описано выше. Rtorrent будет качать/раздавать в фоне, избавляя вас от необходимости держать ради него открытую вкладку терминала или tty-консоль (что еще и небезопасно).

Работа с несколькими скринами

    Eсли вам нужно запустить лишь одну программу - вышеописанного более чем достаточно, но в случае если таких программ несколько - скринам нужно будет раздать имена, чтобы screen знала, к какому именно свернутому скрину вы хотите вернуться. Имя создаваемого скрина задается с помощью ключа -S:

screen -S rtor rtorrent

    Cверните скрин с rtorrent"ом и запустите еще что-нибудь, к примеру nano:

screen -S nano nano

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

screen -r nano

    Список запущенных скринов можно посмотреть с помощью:

screen -list

Screen -ls

    Возможно также вернуться к уже развернутому в ином терминале скрину:

screen -x nano

Запуск скрина в свернутом виде

    Программу можно запустить сразу в свернутом скрине. Это полезно в случае с автозапуском, или когда вы знаете, что программа сама все сделает (установит соединение и продолжит закачку/раздачу в нашем примере с rtorrent), и смотреть там не на что. Делается все опять же просто. Команда на запуск будет такой:

screen -dmS rtor rtorrent

    Ключ -d укажет, что скрин нужно свернуть, а ключ -m - что его нужно для начала создать. Процесс «усложняется» по той причине, что ключ -d по умолчанию используется для сворачивания ранее запущенного скрина, развернутого на другой консоли или в соседней вкладке, с той целью, чтобы развернуть его в текущем месте (ибо если одна и та же программа управляется из двух мест - это может и к конфузу привести). Таким образом нужная программа запустится сразу в фоне, а screen лишь выведет сообщение о том, что программа запущена, и скрин свернут.

S creen очень полезная команда, которая предлагает возможность использовать несколько окон оболочки (сеансов) от одного . Когда сеанс отсоединен или есть нарушения сети, процесс, который запускается в сеансе экрана по-прежнему будет работать, и вы можете повторно подключиться к сессии экрана в любое время. Это также очень удобно, если вы хотите запустить длительный процесс постоянно или подключиться к оболочке сеансов из нескольких мест.

В этой статье мы покажем основы установки и использования экрана на .

Как установить экран

Экран поставляется с предустановленной на некоторых из популярных дистрибутивов. Вы можете проверить установлен он или нет на сервере с помощью следующей команды

Screen -v Screen version 4.00.03 (FAU)

Если у вас нет экрана к VPS, вы можете легко установить его с помощью менеджера пакетов, предоставляемой с операционной системой.

/RedHat/Fedora

yum -y install screen

/

apt-get -y install screen

Как начать сеанс экрана

Вы можете начать экран, набрав слово “screen” в командной строке и новый сеанс экран будет запущен, который выглядит так же, как в командной строке

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

Screen -S name

и заменить ‘name ‘ с понятным названием для вашей сессии.

Отсоединить экран от сессии

Для того, чтобы отключиться от текущего сеанса экрана вы можете нажать клавишу ‘Ctrl-A ‘ и ‘ D ‘ на клавиатуре. Все сеансы экрана будут по- прежнему активны, и вы можете повторно подсоединиться к ним в любое время позже.

Заново на экран сессии

Если вы оторваны от сеанса или ваше соединение прерывается по какой-то причине, вы можете легко повторно подсоединиться, выполнив следующую команду:

Screen -r

Если у вас есть несколько сеансов экрана вы можете перечислить их с ‘ ‘

Screen -ls There are screens on: 7880.session (Detached) 7934.session2 (Detached) 7907.session1 (Detached) 3 Sockets in /var/run/screen/S-root.

В нашем примере, у нас есть три активных сеансов экрана. Итак, если вы хотите восстановить сеанс “session2”, вы можете выполнить

Screen -r 7934

или вы можете использовать имя экрана

Screen -r -S session2

Завершить сеанс экрана

Есть несколько способов, чтобы завершить сеанс экрана. Вы можете сделать это, нажав ‘Ctrl ‘ + ‘ D ‘ на клавиатуре или с помощью команды командной строки ‘exit ‘.

Для того чтобы увидеть все полезные свойства экрана команды вы можете проверить man page screen.

Man screen NAME screen - screen manager with VT100/ANSI terminal emulation SYNOPSIS screen [ -options ] [ cmd [ args ] ] screen -r ] screen -r sessionowner/]

Screen - это полно-экранная программа, которая может быть использована для мультиплексов физической консоли между несколькими процессами (обычно интерактивными оболочками). Она предлагает пользователю открывать несколько отдельных терминалов в одном оконном менеджере терминала.

На моей Ubuntu 10.04 Server Edition, Screen был установлен по умолчанию. Но, в Linux Mint нет Screen по умолчанию, мне нужно сначала установить его, при помощи команды apt-get. Пожалуйста, следите за процессом установки screen вашего дистрибутива.

# apt-get install screen (On Debian based Systems) # yum install screen (On RedHat based Systems)

На самом деле, Screen - очень хорошая команда в Linux, которая скрыта внутри сотни Linux команд. Давайте стартанем, чтобы увидеть функции Screen.

Запускаем Screen первый раз

Просто введите screen в командной строке. Затем появится screen с таким же интерфейсом, как в командной строке.

Pungki@mint ~ $ screen

Показать параметры screen

Войдя в screen, можно выполнять различные действия, как и в нормальной окружающей среде CLI. Но так как screen - это приложение, поэтому оно имеет команды или параметры.

Наберите Ctrl-A и ? . Теперь вы увидите все команды или параметры на экране.

Screen key bindings, page 1 of 1. Command key: ^A Literal ^A: a break ^B b flow ^F f lockscreen ^X x pow_break B screen ^C c width W clear C focus ^I log H pow_detach D select " windows ^W w colon: hardcopy h login L prev ^H ^P p ^? silence _ wrap ^R r copy ^[ [ help ? meta a quit \ split S writebuf > detach ^D d history { } monitor M readbuf < suspend ^Z z xoff ^S s digraph ^V info i next ^@ ^N sp n redisplay ^L l time ^T t xon ^Q q displays * kill K k number N remove X title A dumptermcap . lastmsg ^M m only Q removebuf = vbell ^G fit F license , other ^A reset Z version v ^] paste . " windowlist -b - select - 0 select 0 1 select 1 2 select 2 3 select 3 4 select 4 5 select 5 6 select 6 7 select 7 8 select 8 9 select 9 I login on O login off ] paste .

Чтобы выйти из этого экрана, нужно нажать на кнопку "пробела " или "Enter ". (Обратите внимание, что все шоткаты, которые используют "Ctrl-A ", используются без кавычек).

Отключить screen

Одним из преимуществ screen есть то, что его можно отключить. Затем вы можете восстановить его, не теряя информации, которую выполняли перед тем. Вот пример скрипта:

Вы находитесь в середине SSH-on на вашем сервере. Давайте предположим, что вы скачиваете 400MB патча для вашей системы с помощью команды wget .

Процесс загрузки займет около двух часов. Если отключить SSH сессию или оборвать связь из-за аварии, то процесс загрузки остановится. Вам придется начать все с начала. Чтобы избежать этого, мы можем использовать screen и отключить его.

Взгляните на эту команду. Во-первых, вы должны войти в screen.

Pungki@mint ~ $ screen

Затем вы можете создать процесс загрузки. Для примера, на моем Linux Mint я апгрейднул мой dpkg пакет с помощью команды apt-get .

Pungki@mint ~ $ sudo apt-get install dpkg

Пример выходных данных

Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dpkg 1 upgraded, 0 newly installed, 0 to remove and 1146 not upgraded. Need to get 2,583 kB of archives. After this operation, 127 kB of additional disk space will be used. Get:1 http://debian.linuxmint.com/latest/ testing/main dpkg i386 1.16.10 47% 14,7 kB/s

" и "d ". Вы ничего не увидите при нажатии этих клавиш. Результат будет выглядеть так:

Pungki@mint ~ $

Снова включить screen

После того как вы отключили screen, например, будем считать, что вы оборвали SSH сессию и пошли домой. Дома вы запускаете SSH снова на вашем сервере, и вы хотите увидеть как проходит процесс загрузки. Чтобы сделать это, вам нужно восстановить screen. Вы можете выполнить следующую команду:

Pungki@mint ~ $ screen -r

И вы увидите, что процесс возобновился с того места, где вы его оборвали.

Если у вас есть более чем 1 screen сессии, вам нужно ввести ID screen сессии. Используйте screen -ls, чтобы увидеть, сколько screen имеются.

Pungki@mint ~ $ screen -ls

Пример выходных данных

Pungki@mint ~ $ screen -ls There are screens on: 7849.pts-0.mint (10/06/2013 01:50:45 PM) (Detached) 5561.pts-0.mint (10/06/2013 11:12:05 AM) (Detached) 2 Sockets in /var/run/screen/S-pungki

Если вы хотите, то восстановите screen 7849.pts-0 .mint, затем введите эту команду.

Pungki@mint ~ $ screen -r 7849

Использование нескольких screen

Возможно ли запустить больше, чем 1 screen , чтобы выполнить работу? Да. Вы можете работать с несколькими окнами экрана одновременно. Есть 2 (два) способа сделать это.

Во-первых, вы можете отсоединить первый screen и запустить другой screen на терминале. Во-вторых, вы делаете вложения screen.

Переключение между screen

Когда у вас вложенные экраны, вы можете переключаться между ними с помощью команды "Ctrl-A " и "n ". Это будет переход к следующему экрану. Когда вам нужно вернуться к предыдущему экрану, нажмите "Ctrl-A " и "p ".

Чтобы создать новое окно экрана, просто нажмите "Ctrl-A " и "с ".

Залогинивание, которое вы делаете

Иногда важно, чтобы записать то, что вы сделали в то время, когда находились в консоли. Предположим, вы - администратор Linux, которые управляет множеством Linux серверов.

С залогиниванием экрана вам не нужно записывать каждую команду, которую вы сделали. Для активации Функция регистрации экрана просто нажмите "strong>Ctrl-А" и "H ". (Пожалуйста, будьте осторожны, мы используем большую букву H . Использование маленькой буквы h только создаст скриншот экрана в отдельном файле).

В нижней левой части экрана появится уведомление, которое сообщает: Creating logfile “screenlog.0 “. Вы найдете screenlog.0 файл в вашем домашнем каталоге.

Эта функция будет добавлять все, что вы делаете, когда находитесь в окне экрана. Закройте экран, чтобы залогиниться, нажмите "Ctrl-А " и "Н " еще раз.

Pungki@mint ~ $ screen -L

Еще один способ, чтобы активировать функцию ведения журнала - вы можете добавить параметр "-L ", когда screen запускается первый раз. Команда будет выглядеть следующим образом.

Pungki@mint ~ $ screen -L

Screen блокировки

Screen также шоткат для блокировки экрана. Вы можете нажать "Ctrl-А " и "х " для блокировки экрана. Это удобно, если вы хотите быстро заблокировать экран. Вот пример вывода блокировки экрана после нажатия на шоткаты.

Screen used by Pungki Arianto on mint. Password:

Вы можете использовать свой Linux пароль, чтобы разблокировать его.

Добавить пароль для блокировки screen

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

Чтобы защитить ваш экран паролем, вы можете редактировать файл “$HOME/.screenrc ”. Если файла не существует, его можно создать вручную. Синтаксис будет таким.

Password crypt_password

Чтобы создать "crypt_password ", вы можете использовать команду "mkpasswd " на Linux. Вот команда с паролем "pungki123 ".

Pungki@mint ~ $ mkpasswd pungki123 l2BIBzvIeQNOs

mkpasswd будет генерировать пароль, как показано выше. Как только вы получите пароль, вы можете скопировать его в файл ".screenrc " и сохранить. Теперь файл ".screenrc " будет выглядеть так.

Password l2BIBzvIeQNOs

При следующем запуске экрана отключите его, и пароль будет запрашиваться при попытке повторно включить экран, как показано ниже:

Pungki@mint ~ $ screen -r 5741 Screen password:

Введите пароль "pungki123 " и экран подключится снова.

Как только вы запустите запрос пароля экрана и нажмете "Ctrl-А " и "х ", то на выходе будет это.

Screen used by Pungki Arianto on mint. Password: Screen password:

Вам нужно будет ввести пароль два раза . Первый раз - ваш пароль Linux , второй - пароль, который вы положили в файл .screenrc .

Выход из screen

Есть 2 (два) способа выхода из экрана. Первый - мы используем "Ctrl-А " и "d ", чтобы отключить его. Второй - мы можем использовать команду погашения экрана. Вы также можете использовать "Ctrl-А " и "К " чтобы прибить экрана.

  • Создавать множественные окна в терминале SSH;
  • Сохранять сессию активной даже при сетевых отключениях;
  • Отключаться и переподключаться к сессии из разных мест;
  • Выполнять длительный процесс, не поддерживая активную сессию.

Установка Screen с Yum

Наверняка, у вас уже есть Linux Screen в вашей системе. В большинстве дистрибутивов Red Hat и CentOS вы можете найти Screen Linux в /usr/bin/ screen . Чтобы увидеть, находится ли там Screen , вы можете использовать следующую команду:

# which screen
/usr/bin/screen

Если у вас нет Screen, то можете установить его из RPM или файла пакета для вашей системы. Например, на CentOS можно установить Screen с yum:

# yum install screen
...
Complete!

Поскольку вы, скорее всего, уже имеете Screen или можете использовать RPM, я не буду описывать установку Screen из ресурса. А расскажу, как использовать screen.

Запуск Screen Linux

Screen запускается с командной строки точно так же, как любая другая команда:

root@office ~]# screen

Теперь вы в окне в Screen. Оно функционирует точно так же, как нормальная оболочка за исключением нескольких специальных символов.

Команда управления

Команда: "Ctrl-a"
Screen использует команду "Ctrl-a" , это - клавиша "CTRL" и нижний регистр "a" работает как сигнал отправить команды Screen’у вместо оболочки. Например, "Ctrl-a" потом "?". У Вас должна появится страница справки Screen.

Привязка клавиш - это команды, которые принимает Screen после того, как нажаты “Ctrl-a”. Вы можете переназначить эти ключи по своему усмотрению, используя.screenrc файл, но я использую значения по умолчанию.

Создание окон

Команда: "Ctrl-a" "c" . Чтобы создать новое окно используйте "Ctrl-a" "c".

Такая комбинация, с настройками по умолчанию создаст новое окно. Ваше старое окно будет все еще активно.
Например, я могу выполнить top и затем открыть новое окно, чтобы заняться чем-то другим. Top остается рабочей! Чтобы попробовать, запустите screen, а затем выполните top. (Примечание: некоторые скрины у меня урезаны, чтобы оставить свободное место.)

Запустите...

top - 09:10:33 up 35 days, 17:26, 1 user, load averag
Tasks: 131 total, 1 running, 130 sleeping, 0 stoppe
Cpu(s): 0.4%us, 0.2%sy, 0.0%ni, 99.4%id, 0.0%wa, 0
Mem: 12302040k total, 6363652k used, 5938388k free,
Swap: 1052248k total, 12k used, 1052236k free,

Теперь откройте новое окно с: "Ctrl-a" "c"

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

Переключение между окнами

Команда: "Ctrl-a" "n"

Screen позволяет перемещаться вперед и назад. Вы можете использовать "Ctrl-a" "n", чтобы вернуться обратно. Эта команда переключает на следующее окно.

Работает как карусель - циклично выполнится назад по кругу к Вашему первому окну. Вы можете создать несколько окон и переключателя по ним "Ctrl-a" "n" для следующего окна или "Ctrl-a" "p" для предыдущего окна. Каждый процесс продолжит работать, пока вы не закроете окно.

Отсоединение от Screen

Команда: "Ctrl-a" "d"

Экран позволяет отсоединяться от окна и вернуться к нему позже. Если сетевая связь прервется, то Screen автоматически отсоединит сеанс!

Можете отсоединиться, используя "Ctrl-a" "d".

Все окна Screen все еще там, и вы можете повторно присоединиться к ним. Это удобно при использовании rsync для миграции сервера.

Повторное присоединение к Screen

Если Ваше соединение оборвалось или Вы отсоединились от Screen’а, Вы можете повторно подключиться, просто запуская:

$ screen -r

Произойдёт повторное подключение к Вашему Screen. Однако, если у Вас есть несколько Screen’ов,то может получится это:

$ screen -r
There are several suitable screens on:
31917.pts-5.office (Detached)
31844.pts-0.office (Detached)
Type "screen [-d] -r tty.host" to resume one of them.

Если так, просто определите Screen, который хотите.

$ screen -r 31844.pts-0.office

Регистрация действий Screen

Я считаю важным фиксировать то, что я делаю на чьем-либо сервере. К счастью, Screen это упрощает.
Используя "Ctrl-a" "H" , запускается регистрация сеанса. Screen продолжит добавлять данные к файлу через многократные сеансы. Использовать функцию регистрации очень полезно для отслеживания того, что вы делали, особенно если требуется вносить много изменений. Если что-то пойдёт не так, всегда будет возможность найти ошибку.

Получение уведомлений

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

Если Вы ожидаете ответа от «долгой» программы, можете использовать "Ctrl-a" "M", чтобы отследить активность. Screen высветит предупреждение внизу страницы, когда отклик будет зарегистрирован на том экране.
Я использую это при выполнении команды, которая занимает много времени. Могу просто запустить команду, переключиться на другое окно и не возвращаться обратно каждый раз, чтобы проверить состояние.

Если загружаете большой файл или компилируете программу, по завершению придёт уведомление. Это - будет сигналом того, что задание выполнено. Чтобы контролировать такие моменты без вывода экрана я используют "Ctrl-A" "_" .

Блокировка сеанса Screen

Если Вам необходимо отойти от Вашего компьютера на несколько минут, Вы можете заблокировать свой сеанс, используя "Ctrl-a" "x" . Для доступа к сеансу снова потребуется пароль.

Screen used by root .
Password:

Остановка Screen

Когда вы закончили работу, я бы порекомендовал закончить сеанс вместо того, чтобы оставить его на потом. Чтобы остановить Screen, можете, как обычно, просто ввести «Exit» из своей оболочки. Это закроет Screen. Чтобы завершить сеанс вы должны закрыть все окна.

Как только вы закрываете все окна выводится сообщение о том, что Screen начал завершение.

Альтернативно, Вы можете использовать "Ctrl-a" "k" .