sair da janela tmux sem sair do programa Terminal


80

OK, eu sou novo nisso. Eu instalei tmuxpara executar um experimento de vários dias. Depois de digitar tmux new -s name, recebi uma nova janela com faixa verde na parte inferior. Eu compilar e executar o programa java. Agora não sei como sair da janela (enquanto a deixo em execução). O cursor bash (ou o que for) não está respondendo porque o programa java ainda está em execução. Minha solução até agora é encerrar o programa Terminal completamente e reabri-lo novamente. Alguma idéia de como sair da janela do tmux sem sair de todo o programa Terminal?


2
man tmux | less -p detach
— jasonwryan

Respostas:


147

Desanexar da sessão atualmente anexada

Sessão

Ctrl+ b dou Ctrl+b :detach

Tela

Ctrl+ a Ctrl+ dou Ctrl+a :detach


Você precisa executar tmux attachpara entrar na sessão aberta novamente após se reconectar.
— Besi

1
Eu sempre fiz ENTER ~ .Isso parece melhor.
— Thomas Eding 24/06

8

As respostas anteriores estão incompletas, acredito. O que :detachfaz é desligar as viewports que estão exibindo a atividade do tmux. No entanto, o próprio tmux ainda está sendo executado em segundo plano, como você pode ver executando ps:

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

De fato, mesmo que você saia do terminal e o inicie novamente, qualquer processo tmux ainda será executado em segundo plano.

Para realmente matar o processo tmux, você precisa:

tmux kill-session [-t session_name]

ou simplesmente:

kill -9 1799


5
Portanto, faria mais sentido comentar sobre as deficiências de algumas respostas sob essa resposta específica e deixar sua postagem como uma resposta completa e contida, sem exigir que os leitores descubram quais respostas são anteriores e depois as analisem.
— techraf

2
Eu acho que o OP queria especificamente que o processo em segundo plano (java, no caso dele) continuasse sendo executado, portanto, matá-lo seria contraproducente. Mais interessante seria se reconectar posteriormente ao processo desanexado com tmux attach-session.
— ThomasH

Usar kill -9é absolutamente o Caminho Errado (tm) para fazer isso. Isso envia um SIGKILLsinal que não permitirá que o processo seja limpo depois de si mesmo, o que pode causar sérios problemas com recursos pendentes. SIGKILLsó deve ser usado quando um processo já tiver sido educadamente solicitado a limpar e encerrar via SIGTERMou similar e, por qualquer motivo, se recusar a fazê-lo; mesmo assim, deve-se evitar o envio, SIGKILLse puder. Essa resposta deduz (incorretamente) que deve ser uma das primeiras coisas que uma pessoa deve fazer para encerrar um processo em segundo plano como um servidor tmux.
— eestrada 12/08
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.