5

Если я подключаюсь к сеансу tmux с помощью команды tmux a , я в конечном итоге делюсь сеансом с другом, и мы не можем работать самостоятельно (поскольку нам приходится работать в разных окнах). С другой стороны, если я соединяюсь с tmux a -d , сеанс моего друга отсоединяется, и он (или, скорее, один из нас) не может работать на сервере.

Я знаю, что эта функциональность может идти вразрез с «целью» tmux, но я подумал, что должен спросить, тем не менее. В любом случае я и мой друг можем использовать один и тот же сеанс tmux на сервере и работать в разных окнах одновременно?

1 ответ1

13

Используйте «Групповые сессии»

Вместо того, чтобы прикреплять к сеансу, вы можете создать «сгруппированный сеанс», задав -t new-session:

tmux new-session -t 'original session name or number'

Сеансы, которые группируются, всегда имеют одинаковые окна (новые (закрытые) окна связаны (удаляются из) всех сеансов в группе), но у каждого из них есть свои собственные параметры сеанса, включая текущие и предыдущие значения окна.

Если вы и ваш друг работаете в сеансе, входящем в одну и ту же группу, вы можете работать в разных окнах, но при этом иметь легкий доступ к одному и тому же набору окон или даже работать в одном и том же окне (если это подходящее).

пример

Создайте начальный сеанс:

tmux                     # start initial session, lets say it gets the name '3'

Чтобы было ясно, кто должен использовать каждый сеанс, вы, вероятно, захотите дать каждому сеансу мнемоническое имя. Я буду использовать his и mine ниже, но вы, вероятно, захотите использовать что-то, основанное на ваших реальных именах, псевдонимах, логинах или что-то еще, идентично идентифицирующее.

Переименуйте этот исходный сеанс как his и (вне исходного сеанса) создайте сгруппированный сеанс с именем mine:

tmux rename-session -t 3 his
tmux new-session -d -t his -s mine          # leave off -d to attach right away

Когда вы хотите прикрепить к своему клону «сеанс»:

tmux attach-sesssion -t mine

Когда ваш друг хочет прикрепить к своему клону «сеанс»:

tmux attach-session -t his

Вы можете kill-session любой сессии, а другая выживет. Вы должны убить все сеансы в группе, прежде чем их окна будут принудительно закрыты.

Сокращения Команды tmux

Если вы пишете команды tmux , вероятно, лучше использовать полные имена команд (как указано выше), чтобы избежать двусмысленности и помощи в «самостоятельной документации». Если вы печатаете их, вы можете использовать сокращения:

  • new-session: new , или new-s , new-se , new-ses ,…
  • rename-session: rename или rename-s , rename-se , rename-ses , ...
  • attach-session: a , at ,…, attach , attach- , attach-s ,…
  • kill-session: kill-ses , kill-sess ,…

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .