saia da janela tmux sem sair do programa Terminal

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

  • man tmux | less -p detach
  • Para mais interativo forma, você pode fazer Ctrl+b s que listará as sessões, navegue até aquela que deseja matar e digite :kill-session.

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 retorna permission 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 um SIGKILL 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 de SIGTERM ou semelhante e, por qualquer motivo, recusa-se a fazê-lo; mesmo assim, deve-se evitar o envio de SIGKILL, 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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *