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

Как автоматически запустить сеанс экрана в Linux при входе в систему

Несколько дней назад мы увидели, как автоматически запускать сеанс Tmux всякий раз, когда вы входите в систему Linux локально или удаленно через SSH. Сегодня мы увидим, как автоматически запускать сеанс Screen в Linux при входе в систему. Автоматический запуск сеансов Screen очень поможет при запуске длительного процесса через SSH. Если вы потеряли подключение к сети по какой-либо причине, процесс продолжит работать внутри сеанса Screen в удаленной системе, и вы сможете повторно подключиться к нему, когда сеть снова подключится к сети.

Автозапуск сеанса экрана в Linux при входе в систему

Чтобы автоматически запустить сеанс Screen в Linux, отредактируйте файл ~/.bash_profile или ~/.bashrc вашей системы Linux:

nano ~/.bash_profile

Если вышеуказанный файл недоступен, просто создайте его.

И добавьте в него следующие строки:

if [[ -z "$STY" ]]; then
   screen -xRR default
fi

Здесь мы использовали флаг -x для прикрепления к неотсоединенному сеансу экрана. А флаг -RR пытается возобновить самый молодой (с точки зрения времени создания) сеанс автономного экрана, который он находит.

Примечание. Если вы используете оболочку Zsh, добавьте приведенные выше строки в файл ~/.zshrc.

Сохраните и закройте файл. Выйдите из системы и снова войдите в систему. Вы перейдете в новый сеанс экрана под названием 'default'.

Теперь запустите любой процесс внутри сеанса Screen и отсоедините его, нажав Ctrl+a, а затем d. Процесс будет продолжать работать внутри сеанса Screen, даже если сетевое соединение будет отключено. Как только сетевое соединение восстановится, вы снова сможете подключиться к удаленной системе по SSH и увидите, что задание все еще выполняется!

Взгляните на следующую анимированную демонстрацию:

Позвольте мне пояснить, что я только что сделал в приведенном выше выводе.

  1. Я подключаюсь к своему удаленному серверу Ubuntu через SSH из своей локальной системы. Автоматически запускается новый сеанс Screen с именем «по умолчанию».
  2. Внутри сеанса Screen я запускаю команду (например, watch grep «cpu МГц» /proc/cpuinfo), чтобы отслеживать скорость процессора.
  3. Затем я отключился от сеанса, нажав Ctrl+a и d.
  4. Затем я перечисляю сеансы Screen с помощью команды «screen -ls» и выхожу из сеанса SSH.
  5. Наконец, я повторно подключаюсь к удаленной системе через SSH и проверяю, продолжает ли процесс работать внутри сеанса Screen без каких-либо перерывов.

Надеюсь ты понимаешь.

Чтобы остановить автоматический запуск сеанса Screen, просто удалите строки, добавленные ранее из файла ~/.bashrc или ~/.bash_profile вашей удаленной системы.

Статьи по данной тематике