Системному администратору или администратору сервера часто требуется поддерживать сеанс терминала в рабочем состоянии для поддержания работы процесса или приложения. Однако, когда мы закрываем SSH-соединение или не отправляем никакой информации на сервер, сеанс терминала закрывается. Чтобы сервер не закрывал автоматически сеанс терминала, мы можем выполнить некоторую настройку. В этом посте будут представлены два способа сохранить сеанс терминала активным:
- Настроив файл конфигурации
- Использование экрана
Что ж, есть быстрый способ предотвратить закрытие сеанса сервером. Мы можем просто добавить следующий параметр к команде SSH и войти на сервер.
$ ssh -o ServerAliveInterval=60 <user>@<ip>
Маршрутизатор будет отправлять информацию каждые 60 секунд, чтобы поддерживать сеанс сервера в рабочем состоянии, выполнив указанную выше команду.
Но, если вы не хотите устанавливать его каждый раз при входе в систему, вы можете выбрать конфигурацию по умолчанию в файле конфигурации SSH.
Теперь давайте посмотрим, как мы можем настроить файлы конфигурации, чтобы поддерживать сеанс терминала в рабочем состоянии.
Поддерживайте активность терминального сеанса, настроив файл конфигурации
Чтобы отредактировать файл конфигурации SSH, введите команду, указанную ниже:
$ sudo nano $HOME/.ssh/config
Приведенная выше команда создаст файл конфигурации и откроет файл в редакторе nano, чтобы вы могли редактировать его, даже если он не существует.
Открыв его в редакторе nano, добавьте содержимое, указанное ниже, в файл конфигурации:
Host *
ServerAliveInterval 60
Вышеупомянутая конфигурация будет продолжать посылать активный сигнал каждые 60 секунд для всех хостов.
После такой конфигурации мы должны изменить мод файла с помощью chmod, чтобы предоставить разрешения на чтение и запись. Для этого введите команду, указанную ниже:
$ chmod 600 $HOME/.ssh/config
Когда вы входите на сервер, сеанс терминала не закрывается автоматически. Вместо этого файл конфигурации будет продолжать посылать сигнал активности после определенного интервала, установленного в файле конфигурации, чтобы поддерживать сеанс терминала в рабочем состоянии.
Здесь возникает другая проблема. Что делать, если некоторые процессы нужно запускать часами. Должна ли клиентская машина также оставаться включенной, чтобы продолжать посылать сигнал активности серверу?
Что ж, в описанном выше методе да. Клиентская машина должна оставаться включенной. Но есть еще один способ сохранить сеанс терминала в рабочем состоянии.
Давайте узнаем, как лучше и эффективнее поддерживать сеанс терминала в рабочем состоянии.
Сохранение активности сеанса терминала с помощью экрана
Экран — это приложение, используемое для поддержания активности сеанса терминала даже при перезагрузке или выключении клиентского компьютера. Это приложение можно использовать для поддержания активности терминального сеанса сервера в течение нескольких часов, пока процесс, запущенный в сеансе, не будет завершен.
Давайте перейдем к процессу и посмотрим, как установить и использовать экран, чтобы поддерживать сеанс терминала в рабочем состоянии.
Установка экрана
Прежде всего, войдите на сервер по SSH:
$ ssh user@localhost
После входа на серверную машину обновите кеш репозитория серверной системы:
$ sudo apt update
И запустите команду установки на экране, используя команду, указанную ниже:
$ sudo apt install screen
Установку экрана можно проверить с помощью приведенной ниже команды:
$ screen —version
Теперь, когда на сервере установлено приложение screen. Использование простое.
Использование экрана
Чтобы создать новый сеанс с помощью экрана, вы можете просто запустить команду «screen», чтобы начать новый сеанс.
$ screen
Вы также можете указать имя сеанса при создании нового сеанса, как показано ниже:
$ screen -S session_name
Вышеупомянутые команды создадут новый сеанс, в котором вы можете запустить или запустить любой процесс по вашему выбору.
Например, мы хотим обновить установленные в системе пакеты.
$ sudo apt upgrade
Теперь, пока он запущен, вы можете отключиться от сеанса, используя сочетания клавиш CTRL + A + D, и все процессы будут продолжать работать за сценой, даже если вы выйдете из сервера с помощью SSH.
Чтобы снова подключиться к сеансу, снова войдите на сервер, используя SSH, если вы вышли из системы, и используйте команду, приведенную ниже:
$ screen -r
Но если существует несколько сеансов, вам нужно ввести идентификатор сеанса, и вы можете получить идентификатор сеанса, используя следующую команду:
$ screen -ls
Из предоставленного списка сеансов выберите сеанс, к которому вы хотите присоединиться. И укажите его идентификатор сеанса, как показано ниже:
$ screen -r 3626
Этот метод позволяет установить и использовать экран, чтобы поддерживать сеанс терминала в течение нескольких часов, пока процесс не будет завершен.
Заключение
Этот пост посвящен тому, как поддерживать сеанс терминала в рабочем состоянии. Он содержит краткие сведения о конфигурации SSH для отправки активных сигналов через определенный интервал времени. В этом посте также представлен подробный метод установки и использования экранного приложения для поддержания активности терминального сеанса.