Как запустить tmux с моей текущей средой?
Или, по крайней мере, его часть, это имеет смысл.
В частности, у меня есть некоторые переменные среды, которые были экспортированы при запуске script, чтобы создать подходящую среду для этой задачи. Когда я запускаю tmux, эти переменные нигде не видны ни в глобальной, ни в сеансовой среде. Конечно, я могу запустить этот script снова, но...
Я был бы доволен, если бы я мог указать конкретные vars в моем .tmux.conf
файле:
set-environment VAR $VAR
Не делает то, что я ожидаю.
Заранее спасибо:)
А, думаю, я знаю почему.
При запуске второго сеанса tmux, скажем, в другом терминале, он копирует среду из первой. Первый из них в значительной степени принимает текущую среду вызывающей оболочки и добавляет некоторую tmuxiness к ней.
Мое текущее обходное решение просто останавливается и запускает сеансы tmux, когда мне нужно изменить среду.
Ответы
Ответ 1
Вы должны настроить параметр сеанса tmux update-environment
для включения переменных, которые вы хотите обновить при создании новых сеансов. Значение по умолчанию включает несколько обычных переменных X11 и SSH:
DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY
Чтобы добавить переменные, используйте команду set-option
tmux с флагами -g
и -a
(добавьте к существующему "глобальному" (по умолчанию) значению). В ~/.tmux.conf
:
set-option -ga update-environment ' YOUR_VAR'
Обязательно укажите ведущее пространство, чтобы имя переменной было отделено от конечного имени по умолчанию.