별도의 쉘에서 tmux 세션 생성

별도의 쉘에서 tmux 세션 생성

tmux 세션을 사용하여 다른 쉘의 창/창을 관리하고 싶습니다. 내가 알아낸 것은 tmux가 해당 세션에 사용된 쉘에 관계없이 모든 후속 세션에 대해 항상 처음 시작된 쉘을 사용한다는 것입니다.

나는 두 개의 껍질을 가지고 있습니다. 그들을 a와 b라고 부르자

첫 번째 셸에서 다음을 실행합니다.

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

그만큼tmux 매뉴얼 페이지[-L socket-name]이 옵션을 사용하면 다른 소켓 이름을 지정할 수 있다고 명시되어 있습니다 .여러 개의 독립적인 tmux 서버를 실행할 수 있도록 허용.

각 서버 세션에서 생성된 각각의 새 창은 해당 세션에 대한 SHELL 환경 변수에 의해 지정된 셸을 사용한다는 것을 알았습니다.

이것은 tmux 1.8에서 작동하지만 이전 버전에 대해서는 잘 모르겠습니다.

관련 정보