Автозапуск сеанса Tmux в удаленной системе при входе в систему через SSH
Как системный администратор, вы можете часто получать доступ к своим удаленным серверам через SSH. В этом кратком руководстве я собираюсь объяснить, почему и как автоматически запускать сеанс Tmux в удаленной системе при входе в систему через SSH в Linux.
Введение
Всегда полезно запускать длительный процесс внутри сеанса Tmux при работе с удаленными системами через SSH. Потому что это предотвращает потерю контроля над запущенным процессом в случае внезапного разрыва сетевого соединения.
На случай, если сетевое соединение по какой-либо причине будет разорвано, процессы внутри сеанса Tmux будут продолжать работать в удаленных системах, поэтому вы можете повторно подключиться к сеансу Tmux, используя команду «tmux Attach
» один раз. сетевое соединение снова в сети.
Хорошо, но что, если вы вообще забыли запустить сеанс Tmux? Как бы мы ни были осторожны, иногда мы забываем запустить сеанс Tmux. Вот простой способ избежать этой проблемы. Вы можете автоматически запускать сеанс Tmux на удаленных системах при входе через SSH.
Это особенно полезно, если вы потеряли сетевое соединение при обновлении удаленного сервера Linux через SSH из вашей локальной системы.
Обратите внимание, что следующий совет автоматически запускает сеанс Tmux всякий раз, когда вы пытаетесь войти в свою систему Linux локально или удаленно через SSH из другой системы.
Автозапуск сеанса Tmux в удаленной системе при входе в систему через SSH
Чтобы автоматически запустить сеанс Tmux при подключении через SSH, отредактируйте файл ~/.bash_profile
вашей удаленной системы:
nano ~/.bash_profile
Если файл недоступен, просто создайте его.
И добавьте в него следующие строки:
if [ -z "$TMUX" ]; then
tmux attach -t default || tmux new -s default
fi
Сохраните и закройте файл. Выйдите из системы и снова войдите в удаленные системы. Вы автоматически попадете в новый сеанс Tmux с именем 'default'.
Теперь запустите любой процесс внутри сеанса Tmux и отсоедините его, нажав Ctrl+b
, а затем d
. Процесс будет продолжать работать внутри сеанса Tmux даже после разрыва сетевого соединения. Как только сетевое соединение восстановится, подключите SSH к удаленной системе, и вы увидите, что задание все еще выполняется!
Взгляните на следующий анимированный вывод:
Визуальная демонстрация — автоматический запуск сеанса Tmux в удаленной системе при входе в систему через SSH
Позвольте мне объяснить, что я только что сделал на предыдущих шагах.
- Я подключаюсь к своему удаленному серверу Ubuntu через SSH из своей локальной системы. Автоматически запускается новый сеанс Tmux с именем «по умолчанию».
- Внутри сеанса Tmux я запускаю команду (например,
watch grep \"cpu МГц\" /proc/cpuinfo
), чтобы отслеживать скорость процессора. - Затем я отключился от сеанса, нажав
Ctrl+b
иd
. - Затем я перечисляю сеансы Tmux с помощью команды «
tmux ls
» и выхожу из сеанса SSH. - Наконец, я повторно подключаюсь к удаленной системе через SSH и проверяю, продолжает ли процесс работать внутри сеанса Tmux без каких-либо перерывов.
Надеюсь ты понимаешь.
Чтобы остановить автоматический запуск сеанса Tmux, просто удалите строки, добавленные ранее из файла ~/.bashrc
или ~/.bash_profile
вашей удаленной системы. файл.
Этот простой совет поможет вам не потерять контроль над удаленной работой. Вам не обязательно каждый раз вручную запускать Tmux. Просто настройте Tmux на автоматический запуск при каждом подключении по SSH к удаленной системе, как описано в этом руководстве.
Рекомендуется прочитать:
- Улучшение входа по SSH с помощью меню выбора сеанса Tmux в Linux
- Как автоматически запустить сеанс Screen в Linux при входе в систему
- Reptyr – перенос запущенного процесса с одного терминала на другой, не закрывая его