Linux команды · 3 min read · Sep 15, 2025

Команда Linux screen: поддерживайте процессы в работе, несмотря на разрыв соединения

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

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

Установка screen очень проста. На Debian выполните:

apt-get install screen

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

sudo apt-get install screen

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

Fedora и CentOS

yum install screen

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

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

screen

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

Команда Linux screen запущена

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

Командная строка Linux screen

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

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

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

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

exit

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

top

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

Команда top запущена в screen

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

Ctrl a c

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

tail -f /var/log/mail.log

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

mail.log показан в команде screen

Теперь вы можете просматривать ваши две сессии экрана, выполнив

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 - это имя одной из сессий из вывода screen -ls.

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

exit

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

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

man screen

3 Мое соединение обрывалось - что я могу сделать?

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

screen -ls

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

screen -r 2477.pts-0.server1

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

4 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.