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 attach
para 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 umSIGKILL
sinal que não permitirá que o processo seja limpo depois de si mesmo, o que pode causar sérios problemas com recursos pendentes.SIGKILL
só deve ser usado quando um processo já foi educadamente solicitado a limpar e encerrar por meio deSIGTERM
ou 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 detach
Ctrl+b s
que listará as sessões, navegue até aquela que deseja matar e digite:kill-session
.