터미널 프로그램을 종료하지 않고 tmux 창을 종료


80

좋아, 나는 이것에 익숙하지 않다. tmux며칠 동안 실험을 진행하기 위해 설치 했습니다. 입력 한 후 tmux new -s name하단에 녹색 배너가있는 새 창이 나타납니다. Java 프로그램을 컴파일하고 실행합니다. 이제 창을 종료하는 방법을 알지 못합니다 (실행중인 동안). java 프로그램이 여전히 실행 중이므로 bash (또는 기타) 커서가 응답하지 않습니다. 지금까지 내 해결책은 터미널 프로그램을 완전히 종료하고 다시 엽니 다. 터미널 프로그램 전체를 종료하지 않고 tmux 창을 종료하는 방법에 대한 아이디어가 있습니까?


2
man tmux | less -p detach
jasonwryan

답변:


145

현재 연결된 세션에서 분리

세션

Ctrl+ b d또는 Ctrl+b :detach

화면

Ctrl+ a Ctrl+ d또는 Ctrl+a :detach


그런 다음 tmux attach다시 연결 한 후 열린 세션으로 다시 들어가기 위해 실행해야 합니다.
Besi

1
나는 항상 해왔다 ENTER ~ .이것은 더 좋아 보인다.
토마스 에딩

8

이전 답변이 불완전하다고 생각합니다. 어떤 :detach일은 TMUX 활동을 표시하는 뷰포트를 종료하는 것입니다. 그러나 다음을 실행하여 볼 수 있듯이 tmux 자체는 여전히 백그라운드에서 실행 중입니다 ps.

myuser 1799 0.0 0.0 2500052 4632 ?? Ss 21Feb16 0:48.39 tmux new-session -s Dev

실제로 터미널을 종료했다가 다시 시작하더라도 tmux 프로세스는 여전히 백그라운드에서 실행 중입니다.

실제로 tmux 프로세스 자체를 종료하려면 다음을 수행해야합니다.

tmux kill-session [-t session_name]

또는 간단히 :

kill -9 1799


5
Imho, 특정 답변에서 일부 답변의 결함에 대해 언급하고 독자가 어떤 답변이 이전 답변인지 찾아서 분석하지 않고도 게시물을 완전하고 완전한 답변으로 남겨 두는 것이 더 합리적입니다.
techraf

2
OP는 백그라운드 프로세스 (자바의 경우 Java)가 계속 실행되기를 원했기 때문에 죽이는 것은 비생산적 일 것이라고 생각합니다. 더 흥미로운 것은 나중에로 분리 된 프로세스에 다시 연결하는 것입니다 tmux attach-session.
ThomasH

이를 사용하는 kill -9것은 절대적으로 잘못된 길 (tm)입니다. 그러면 SIGKILL프로세스 자체를 정리할 수없는 신호가 전송 되어 댕글 링 리소스에 심각한 문제가 발생할 수 있습니다. SIGKILL프로세스가 이미 정중하게 정리 및 종료를 요청 받았 SIGTERM거나 그와 유사한 이유로, 어떤 이유로 든 거부하지 않은 경우에만 사용해야합니다 . 그럼에도 불구 SIGKILL하고 가능하다면 전송을 피해야 합니다. 이 답변은 tmux 서버와 같은 백그라운드 프로세스를 종료하기 위해 가장 먼저해야 할 일 중 하나 여야한다고 잘못 추측합니다.
eestrada
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.