2011-12-27 3 views
28

또는 적어도 그 부분은 의미가 있습니다.현재 환경에서 tmux를 시작하려면 어떻게합니까?

좀 더 구체적으로 말하자면, 스크립트를 실행하여 내 보낸 일부 환경 변수가있어 작업에 적합한 환경을 만듭니다. tmux를 실행할 때 이러한 변수는 전역 또는 세션 환경에서 볼 수 없습니다.

set-environment VAR $VAR 

내가 기대했던 일을하지 않는다 : 나는 그러나 내 .tmux.conf 파일에 특정 바르를 지정 할 수 있다면 물론 나는

내가 만족 것 ... 다시 스크립트를 실행할 수 있지만. 사전 :

아에

덕분에, 나는 이유를 알고 생각합니다.

다른 터미널에서 tmux의 두 번째 세션을 시작할 때 첫 번째 세션에서 환경을 복사합니다. 첫 번째 것은 호출 쉘의 현재 환경을 꽤 많이 사용하고 약간의 환경을 추가합니다.

현재 해결 방법은 환경을 변경해야 할 때 tmux 세션을 중지하고 시작하는 것입니다.

+0

George에게 상기시켜 주셔서 감사합니다. – Phluks

+3

내가 원하는 것을 얻는 더 쉬운 방법이 있습니다. '-L'(또는 '-S') 옵션 사용. 현재 환경에서 새 서버를 시작합니다. 전의. 'tmux -L newenv' 모든 인세던트는 동일한 환경에서 소켓의 서버에 새로운 세션을 작성합니다. (물론 자신의 이름을 선택할 수 있습니다) 'tmux -L newenv list-sessions, 해당 서버의 세션을 나열합니다. ... 등. – Phluks

답변

54

새 세션을 만들 때 업데이트 할 변수를 포함하려면 tmux 세션 옵션 update-environment을 구성해야합니다. 기본값은 몇 가지 일반적인 X11 및 SSH 변수를 포함

DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY 

(기존의 "글로벌"(기본값) 값에 추가)의 -g-a 플래그와 함께 set-optionTMUX 명령을 사용하여 변수를 추가하려면. 당신의 ~/.tmux.conf에서 :

set-option -ga update-environment ' YOUR_VAR' 

은 변수 이름이 기본 값의 후행 이름에서 분리되도록 선행 공백을 포함해야합니다.

+0

우수 답변. 고맙습니다. – Phluks

+3

훌륭한 답변입니다. 한 가지주의 사항 : ~/.tmux.conf 파일은 tmux 서버가 이미 실행 중일 때 읽히지 않으므로 이와 같은 변경 사항은 적용되지 않습니다. 나는 'tmux attach-session'중에 그것을 읽었을 것으로 예상했지만 적용되지 않았습니다. – Wade

+0

죄송합니다. 맨 페이지에 "새 세션을 만들었거나 이전에 다시 연결했을 때 업데이트 환경 세션 옵션을 사용하여 클라이언트에서 세션 환경을 업데이트 할 수 있습니다."라는 메시지가 나타납니다. 이것은 _existing_ 세션에 다시 연결할 때 업데이트해야하지만 그렇게하지 않는 것이 좋습니다. 어떤 아이디어? – sjbx

관련 문제