Запуск существующего сеанса tmux при входе в SSH или создание, если не существует

Я хочу открыть сеанс tmux каждый раз, когда я вхожу через SSH на свой сервер. Если сеанс существует, подключитесь к нему, если нет, создайте и подключитесь к нему.

Я думаю, мне нужно редактировать файл ~/.bashrc , но я не собираюсь делать оператор if / else или что-то в сценариях bash.

Как я могу это сделать?

One Solution collect form web for “Запуск существующего сеанса tmux при входе в SSH или создание, если не существует”

tmux сам по себе запускает новый сеанс, tmux attach присоединяется к предыдущему сеансу.

tmux attach будет работать, если предыдущей сессии не было.

Эти два факта объединяются, чтобы дать следующее решение:

 tmux attach || tmux 

Сначала он пытается tmux attach , и если он не работает, он запускает tmux сам по себе. Это относится к предыдущей сессии, если она есть, и запускает новый сеанс, если этого не происходит. Итак, это первая часть.

Для второй части вы хотите, чтобы этот код запускался каждый раз при входе в систему через SSH. Поэтому вам нужно проверить:

  1. является ли это оболочкой входа. Это можно сделать, используя shopt -q login_shell .
  2. подключены ли вы через SSH. Это можно сделать, если установить $SSH_CLIENT , то есть: [ -n "$SSH_CLIENT" ] .

Поэтому вы должны добавить это в конец своего .bashrc :

 if shopt -q login_shell && [ -n "$SSH_CLIENT" ]; then tmux attach || tmux fi 
  • Gentoo как автоматически запускать программы при входе в систему?
  • Как сохранить все vim-буферы при изменении окна tmux?
  • Как использовать tmux при запуске как для OSX, так и для Ubuntu (включая Quake)
  • tmux отключить подтверждение запроса на kill-window
  • Byobu с tmux, как использовать F-Keys
  • Коды клавиш для клавиш Caps Lock, Shift, Left Control и FN?
  • Что такое код префикса tmux для клавиши управления на Mac?
  • При загрузке tmux по умолчанию при запуске zsh-терминала
  • tmux не может начать новый сеанс? «1; 2с»
  • Как использовать цветной вывод в команде tmux run-shell?
  • Копирование man-страниц из режима копирования tmux
  • Linux и Unix - лучшая ОС в мире.