OK, eu sou novo nisso. Eu instalei tmux
para 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?
80
man tmux | less -p detach
Respostas:
Desanexar da sessão atualmente anexada
Sessão
Ctrl+ b dou Ctrl+b
:detach
Tela
Ctrl+ a Ctrl+ dou Ctrl+a
:detach
fonte
tmux attach
para entrar na sessão aberta novamente após se reconectar.ENTER ~ .
Isso parece melhor.As respostas anteriores estão incompletas, acredito. O que
:detach
faz é 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 executandops
: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
fonte
tmux attach-session
.kill -9
é absolutamente o Caminho Errado (tm) para 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á tiver sido educadamente solicitado a limpar e encerrar viaSIGTERM
ou similar e, por qualquer motivo, se recusar a fazê-lo; mesmo assim, deve-se evitar o envio,SIGKILL
se 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.