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.