Поиск по сайту:

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


На этой странице

  1. 1 Установка команды screen
  2. 2 Использование экранной команды
  3. 3 У меня прервалось соединение. Что делать?
  4. 4 ссылки

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

1 Установка команды экрана

Установка экрана очень проста. В Debian запустите:

apt-get install screen

Для Ubuntu используйте команду с sudo:

sudo apt-get install screen

А для Fedora, CentOS, SuSE и Mandriva также есть пакеты экранов, которые можно установить с помощью yum/yast/urpmi/...

Федора и CentOS

yum install screen

2 Использование экранной команды

С помощью экрана вы можете создать один или несколько сеансов в вашем текущем SSH-терминале. Просто беги

screen

чтобы начать это. Это создает сеанс экрана или окно (хотя вы его как таковое не видите) в вашем текущем SSH-терминале:

Нажмите «Пробел» или «Return», чтобы перейти к командной строке:

Похоже на обычный SSH-терминал, не так ли?

Теперь я собираюсь описать самые важные экранные команды, которые вам нужны для управления экраном. Эти команды начинаются с CTRL a, чтобы отличить их от обычных команд оболочки.

  • Ctrl a c — создает новый сеанс экрана, чтобы можно было использовать несколько сеансов экрана одновременно.
  • Ctrl и n — переключение на сеанс next screen (если вы используете более одного).
  • Ctrl a p — переключение на pпредыдущий сеанс экрана (если вы используете более одного сеанса).
  • Ctrl a d — Отключение сеанса экрана (не убивая процессы в нем — они продолжаются).

Чтобы закрыть сеанс экрана, когда все задачи завершены, вы можете ввести

exit

Теперь давайте немного поиграем с ним. В нашем окне экрана мы запускаем команду

top

Это должно выглядеть так:

Теперь давайте создадим еще один сеанс экрана, набрав

Ctrl a c

Откроется новый сеанс с пустым экраном, и там мы запустим

tail -f /var/log/mail.log

чтобы постоянно просматривать наш почтовый журнал:

Теперь вы можете просматривать сеансы двух экранов, запустив

Ctrl a n

или

Ctrl a p

Чтобы отключить сеанс экрана и вернуться к обычному SSH-терминалу, введите

Ctrl a d

Вернувшись на свой обычный SSH-терминал, вы можете запустить

screen -ls

чтобы получить список ваших текущих сеансов экрана:

There are screens on:
        2477.pts-0.server1      (Detached)
        2522.pts-0.server1      (Detached)
2 Sockets in /var/run/screen/S-root.

Чтобы повторно подключиться к одному из этих сеансов, запустите

screen -r 2477.pts-0.server1

где 2477.pts-0.server1 — имя одной из сессий из вывода экрана -ls.

Чтобы выйти и завершить сеанс экрана, завершите все текущие задачи в нем (top можно завершить, набрав q, tail -f /var/log/mail.log можно завершить, набрав CTRL c), а затем введите

exit

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

Если вы хотите узнать больше об экране, запустите

man screen

3 У меня пропало соединение – что делать?

Теперь давайте предположим, что вы компилируете ядро в сеансе экрана, что обычно занимает много времени, и вдруг ваше соединение обрывается. Благодаря экрану ваша работа не потеряется. Как только ваше соединение восстановится, снова войдите в свою систему с помощью SSH и запустите

screen -ls

как показано в главе 2. Из результатов выберите одну сессию (например, 2477.pts-0.server1) и повторно подключитесь к ней:

screen -r 2477.pts-0.server1

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

4 ссылки

  • экран: http://www.gnu.org/software/screen