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?

seteropere
fonte
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

Ruban Savvy
fonte
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

JESii
fonte
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