로컬 컴퓨터에서 tmux 세션을 열고 원격 컴퓨터로 ssh했습니다. 그런 다음 원격 컴퓨터에서 “tmux attach”명령을 입력 한 다음 로컬 tmux 세션에서 원격 tmux 세션을 얻었습니다.
이제 원격 TMux 세션을 분리하고 싶습니다.
C-b d
하지만 원격 세션 대신 로컬 tmux 세션을 분리했습니다.
원격 TMUX 세션을 분리하려면 어떻게해야합니까?
답변
C-b C-b d
(기본 바인딩 가정)
첫 번째 Cb 는 로컬 tmux에 의해 해석됩니다 (모든 키 입력을 가장 먼저 볼 수 있기 때문에). 두 번째 Cb 는 로컬 tmux가 활성 창으로 Cb 를 보내도록하는 명령입니다 . 이 생성 된 Cb 는 원격 tmux에 도착합니다 . D는 로컬 통과 TMUX 변경; 원격 tmux에 도달 하면 detach
명령 이 트리거됩니다 .
- Cb를 입력하십시오 .
지역 tmux 는이를 접두사 키로 해석합니다. 로컬 tmux 에서 실행되는 프로세스에는 아무것도 전송되지 않습니다 . - Cb를 입력하십시오 .
로컬 tmux 가send-prefix
명령에 바인딩했습니다 .- 로컬 tmux 는 활성 분할 창 ( ssh ) 에서 실행중인 프로세스 로 Cb 를 보냅니다 .
- ssh 는 ( sshd 등을 통해 ) 원격 끝에서 실행되는 프로세스 (원격 tmux )로 전달합니다.
원격 tmux 는이를 접두사 키로 해석합니다. 원격 tmux 에서 실행중인 프로세스에는 아무것도 전송되지 않습니다 .
- d를 입력하십시오 .
로컬 tmux 는 정상적으로 통과합니다 (두 번째 Cb 가 로컬 tmux에 대한 전체 명령 키 시퀀스를 완료 했기 때문에 ).
당신의 원격 tmux 는 그것에 묶여있다detach-client
; 활성 클라이언트를 분리합니다.
이것은 tmux 세션 내에서 실행되는 모든 프로그램에 Cb 를 보내야 할 때와 동일 합니다. Cb 를 일반 쉘로 보내 려면 (예를 들어 쉘이 Cb 가 있는 곳에서 Emacs 스타일 편집을 사용하고 (화살표 키를 사용하지 않는 경우)) Cb Cb 를 사용 하여 쉘에 단일 Cb 를 가져와야 합니다.backward-char
답변
올바른 tmux 인스턴스에 대한 키 바인딩에 대해 걱정하지 않고이를 수행하는 다른 방법 tmux detach
은 원격 tmux 세션 을 입력 하는 것입니다.
답변
나는 첫 번째 대답을 성공하지 못했습니다.
다음을 수행하여 원하는 결과를 얻을 수있었습니다.
tmux attach
나는 tmux에 들어가서 다른 세션이 여전히 연결되어 있음을 보았다
그래서 나는 현재 세션을 분리하여 쉘로 돌아왔다. Ctrl + b; d
그런 다음 다음을 발행했습니다.
tmux attach -d
기본 세션에 연결하고 현재 연결된 다른 모든 세션을 분리하라는 메시지가 표시됩니다. 클라이언트 및 세션 의 매뉴얼 페이지를 참조하십시오
attach-session [-dr] [-t target-session] (별칭 : attach) tmux 외부에서 실행되는 경우 현재 터미널에서 새 클라이언트를 작성하여 대상 세션에 연결하십시오. 내부에서 사용하는 경우 현재 클라이언트를 전환하십시오. -d를 지정하면 세션에 연결된 다른 클라이언트가 분리됩니다. -r은 클라이언트가 읽기 전용임을 나타냅니다 (detach-client 명령에 바인드 된 키만 영향을 미칩니다)
답변
다른 옵션을 시도하려면 아래 단계를 따르십시오
- 으로 현재 tmux 세션을 분리하십시오
Ctrl+b d
. 이제 일반 터미널 명령 줄 프롬프트로 이동합니다. - 을 수행하십시오
tmux ls
. 현재 연결된 세션을 찾으십시오 - 이미 연결된 세션을 분리하려면이 명령을 실행하십시오.
tmux detach-client -s <attached_session_name>