OK, sou novo nisso. Instalei tmux para executar uma experiência de vários dias. Depois de digitar tmux new -s name, obtive uma nova janela com faixa verde na parte inferior. Compilo e executo o programa java. Agora não sei como sair da janela (embora deixe-o rodando). O cursor bash (ou qualquer outro) não está respondendo porque o programa java ainda está rodando. Minha solução até agora é encerrar o programa Terminal completamente e reabri-lo novamente. Alguma idéia de como sair da janela tmux sem sair todo o programa Terminal?
Comentários
Resposta
Desanexar da sessão atualmente anexada
Sessão
Ctrl + b d ou Ctrl + b :detach
Tela
Ctrl + a Ctrl + d ou Ctrl + a :detach
Comentários
- Você precisa então executar
tmux attachpara entrar na sessão aberta novamente após reconectar. - I ' Sempre fiz
ENTER ~ .Isso parece melhor. - Há espaço entre
~e.e também retornapermission denied: /home/folder@ThomasEding - @alper Nenhum espaço na expressão I digitado acima.
Resposta
As respostas anteriores estão incompletas, eu acredito. O que :detach faz é desligar as janelas de exibição que estão exibindo atividade do tmux. No entanto, o tmux em si 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
Na verdade, mesmo se você sair do terminal e iniciá-lo novamente, quaisquer processos do tmux AINDA estão em execução em segundo plano.
Para realmente encerrar o processo do tmux em si, você deve fazer:
tmux kill-session [-t session_name]
ou simplesmente:
kill -9 1799
Comentários
- Imho, faria mais sentido comentar sobre algumas deficiências de ' s nessa resposta específica e deixe sua postagem como uma resposta completa e contida, sem exigir que os leitores descubram quais respostas são anteriores e depois as analisem.
- Acho que o OP queria especificamente que o processo de segundo plano (java, no caso dele) continuasse em execução , matá-lo seria contraproducente. Mais interessante seria reconectar mais tarde ao processo desanexado com
tmux attach-session. - Usar
kill -9é absolutamente o Maneira errada ™ de fazer isso. Isso envia umSIGKILLsinal 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á foi educadamente solicitado a limpar e encerrar por meio deSIGTERMou semelhante e, por qualquer motivo, recusa-se a fazê-lo; mesmo assim, deve-se evitar o envio deSIGKILL, se possível. Esta resposta infere (incorretamente) que deve ser uma das primeiras coisas que uma pessoa deve fazer para desligar um processo em segundo plano, como um servidor tmux.
man tmux | less -p detachCtrl+b sque listará as sessões, navegue até aquela que deseja matar e digite:kill-session.