Что я хочу
Я пытаюсь автоматизировать подключение к удаленной машине в нескольких отдельных ssh-терминалах и иметь независимые сеансы tmux для каждого удаленного терминала, используя одни и те же окна (то есть могу изменять настройки сеанса и активное окно / панель, не затрагивая другие удаленные терминалы, но при этом доступ к тем же окнам tmux).
Я хочу сделать это без изменения первоначального запуска исполняемого файла tmux и полностью для каждого пользователя (все изменения ограничены /home/$USER/
).
Как я пытаюсь это сделать
Ubuntu 16.04
TMUX 2.1 (from package manager)
Я использую порт MS ssh
(OpenSSH) в моей локальной системе (Windows 10).
В настоящее время, когда я открываю удаленный терминал (или локальный терминал в этом отношении), tmux запускается через ~/.zprofile
и создает совершенно новый сеанс. У меня есть файл ~/.tmux.conf
со следующей строкой:
#(this is a single line in my .tmux.conf, I've broken it up here for readability)
if-shell 'tmux has-session -t theonering' \
'new-session -t theonering' \
'rename-session theonering'
Я также устанавливаю команду « destroy-unattached on
уровне сеанса во второй строке, но здесь я оставил это для ясности. Это не меняет результат.
Чего я ожидаю?
Насколько я понимаю, это говорит о том, что «если из оболочки tmux сообщает, что имеет сеанс с именем theonering
то создайте новый (безымянный) сеанс и сгруппируйте его с theonering
. Если tmux не имеет сеанса с именем theonering
переименованного текущая сессия для theonering
«.
Что на самом деле происходит
Теперь, если я подключусь удаленно, отсоединюсь от существующего сеанса, затем запустим указанную выше команду (очевидно, с префиксом tmux
)? Работает отлично.
Но если я положу это в мой ~/.tmux.conf
? bupkiss. Это так же, как если бы линия не была там вообще. Нет ошибок, нет сообщений, нет отклонений от поведения на складе.