Как автоматически запустить сеанс экрана в 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 и увидите, что задание все еще выполняется!
Взгляните на следующую анимированную демонстрацию:
Позвольте мне пояснить, что я только что сделал в приведенном выше выводе.
- Я подключаюсь к своему удаленному серверу Ubuntu через SSH из своей локальной системы. Автоматически запускается новый сеанс Screen с именем «по умолчанию».
- Внутри сеанса Screen я запускаю команду (например, watch grep «cpu МГц» /proc/cpuinfo), чтобы отслеживать скорость процессора.
- Затем я отключился от сеанса, нажав Ctrl+a и d.
- Затем я перечисляю сеансы Screen с помощью команды «screen -ls» и выхожу из сеанса SSH.
- Наконец, я повторно подключаюсь к удаленной системе через SSH и проверяю, продолжает ли процесс работать внутри сеанса Screen без каких-либо перерывов.
Надеюсь ты понимаешь.
Чтобы остановить автоматический запуск сеанса Screen, просто удалите строки, добавленные ранее из файла ~/.bashrc или ~/.bash_profile вашей удаленной системы.