Повторно подключенный сеанс tmux не импортирует ~ / .bashrc - PullRequest
0 голосов
/ 26 ноября 2018

Я использую iTerm2, интегрированный с tmux.Моя обычная схема работы - сначала открыть терминал iTerm2 на моем Mac, а затем подключиться к моей виртуальной машине dev.

На моей виртуальной машине dev установлена ​​tmux, так что я могу повторно присоединить сеансы tmux к моей виртуальной машине dev.

Проблема в том, что когда я в первый раз создаю сеанс tmux, он будет источником ~/ .bashrc без проблем.Но если я уберу отсоединить сеанс tmux, а затем снова присоединю эти сеансы tmux, ~ / .bashrc не будет получен.

Я включил

if [ -f ~/.bashrc ]; then source ~/.bashrc; fi

в ~ / .bash_profile, .profile, .bash_login.

А также включены

set-option -g default-command "exec /bin/bash"

в ~ / .tmux.conf

1 Ответ

0 голосов
/ 27 ноября 2018

Как следует из глагола «re-attach», ваш сеанс tmux (и вместе с ним запускаемая в нем оболочка Bash) продолжает работать на вашем компьютере разработчика, когда вы отключаетесь, так что вы можете позже подключиться к самомута же сессия(Это главная особенность tmux: как правило, оболочка напрямую подключена к вашему терминалу или сеансу SSH, поэтому, когда вы закрываете / отключаете ее, оболочке нечего читать и выводить, поэтому ей придется выйти.виртуальный терминал между ними, так что оболочке есть что повесить (даже если никто не видит вывод, и никто в настоящее время ничего не вводит), и tmux обрабатывает управление сессиями.)

Приложения (такие как Bash и также Vim)обычно только читают их конфигурацию при запуске.Поскольку Bash продолжает работать (вы можете проверить это с помощью ps -o etime --pid $$), он не заметит, что вы повторно подключаетесь через tmux, и у него нет оснований для перезагрузки его конфигурации - все должно быть определено и сохранено в сеансе tmux.Если вам нужно перезагрузить (измененную) конфигурацию, вы должны сделать это явно (source ~/.bashrc) или открыть новую оболочку.

...