Создать сеанс tmux в отдельных оболочках

Создать сеанс tmux в отдельных оболочках

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

У меня есть две ракушки. Назовем их а и б.

В первой оболочке я запускаю:

tmux new -s a

Во второй оболочке я запускаю:

tmux new -s b

В итоге я заметил, что фактическая оболочка, используемая сеансом tmux b, — это оболочка a. Переменные окружения унаследованы правильно, но сама оболочка не та, которую я ожидал.

Есть ли у вас предложения, как заставить tmux нормально работать с несколькими оболочками?

решение1

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

$> SHELL=$(which zsh) && tmux -L zsh-tmux-socket new -s zsh-session
$> SHELL=$(which bash) && tmux -L bash-tmux-socket new -s bash-session

Theстраница руководства tmuxутверждает, что [-L socket-name]опция позволяет указать другое имя сокета,позволяет запускать несколько независимых серверов tmux.

Я обнаружил, что каждое новое окно, создаваемое в каждом сеансе сервера, будет использовать оболочку, указанную переменной среды SHELL для этого сеанса.

Это работает для tmux 1.8, о более ранних версиях не знаю.

Связанный контент