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

OK I “m new to this. I installed tmux to run 며칠 실험. tmux new -s name를 입력 한 후 하단에 녹색 배너가있는 새 창이 생겼습니다. 자바 프로그램을 컴파일하고 실행합니다. 이제 창을 종료하는 방법을 모릅니다. Java 프로그램이 아직 실행 중이기 때문에 bash (또는 기타) 커서가 응답하지 않습니다. 지금까지 내 해결책은 터미널 프로그램을 완전히 종료하고 다시 여는 것입니다. 종료하지 않고 tmux 창을 종료하는 방법에 대한 아이디어 전체 터미널 프로그램?

댓글

  • man tmux | less -p detach
  • 더 많은 대화 형 방법으로 세션을 나열하는 Ctrl+b s를 수행하고 종료하려는 세션으로 이동하여 :kill-session를 입력 할 수 있습니다.

답변

현재 연결된 세션에서 분리

세션

Ctrl + b d 또는 Ctrl + b :detach

화면

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

댓글

  • 다시 연결 한 후 tmux attach를 실행하여 열린 세션에 다시 들어가야합니다.
  • I ' ENTER ~ .이게 더 좋을 것 같습니다.
  • ~ 사이에 공백이 있습니까? div> 및 .permission denied: /home/folder @ThomasEding
  • @alper 표현식 I에 공백 없음 위에 입력했습니다.

답변

이전 답변은 불완전합니다. :detach가하는 일은 tmux 활동을 표시하는 뷰포트를 종료하는 것입니다. 그러나 ps를 실행하면 알 수 있듯이 tmux 자체는 여전히 백그라운드에서 실행됩니다.

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

댓글

  • Imho, 특정 답변 아래에서 일부 답변 '의 결함에 대해 언급하는 것이 더 합리적입니다. 독자가 어떤 답변이 이전인지 확인하고 분석 할 필요없이 게시물을 완전하고 포함 된 답변으로 남겨 두세요.
  • OP는 특히 백그라운드 프로세스 (그의 경우 java)가 계속 실행되기를 원했다고 생각합니다. , 그래서 그것을 죽이는 것은 비생산적 일 것입니다. 더 흥미로운 것은 나중에 tmux attach-session를 사용하여 분리 된 프로세스에 다시 연결하는 것입니다.
  • kill -9를 사용하는 것은 절대적으로 이 작업을 수행하는 잘못된 방법 ™. 이렇게하면 프로세스가 자체적으로 정리되는 것을 허용하지 않는 SIGKILL 신호가 전송되어 매달린 리소스에 심각한 문제가 발생할 수 있습니다. SIGKILL는 프로세스가 SIGTERM 또는 이와 유사한 방법을 통해 이미 정중하게 정리 및 종료하도록 요청받은 경우에만 사용해야합니다. 그렇게하기를 거부합니다. 그래도 가능하다면 SIGKILL 전송을 피해야합니다. 이 답변은 tmux 서버와 같은 백그라운드 프로세스를 종료하기 위해 사람이해야하는 첫 번째 작업 중 하나 여야한다고 (잘못) 추론합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다