Como usar tmux ou screen para manter sessões SSH ativas após desconectar imprimir

  • 0

Por que sua sessão SSH "morre" quando a internet cai?

Oi, tudo bem? Aqui é a Sensei da GeHost 🧑‍🏫 e hoje vamos resolver um perrengue clássico de quem mexe com servidor: aquela sensação de raiva quando você está rodando um comando demorado via SSH, a internet pisca por um segundo, e... tudo se perde. O comando morre junto com a conexão.

Isso acontece porque, por padrão, tudo que você roda dentro de uma sessão SSH está "amarrado" a essa conexão. Se a conexão cai, o processo cai junto. A solução é simples e vai virar sua melhor amiga: usar um multiplexador de terminal, como o tmux ou o screen. Eles criam uma sessão "virtual" dentro do servidor que continua rodando mesmo se você desconectar — e você volta pra ela depois como se nada tivesse acontecido.

Dica da Sensei: pense no tmux/screen como um controle remoto de TV que você pode desligar (desconectar) sem desligar a TV (o processo). Quando você volta e liga o controle de novo, a TV está exatamente do jeito que você deixou.

Tmux ou screen: qual eu uso?

Os dois fazem basicamente a mesma coisa: mantêm sua sessão viva no servidor. A diferença é histórica e de praticidade:

  • screen — mais antigo, quase sempre já vem instalado no servidor, comandos mais simples.
  • tmux — mais moderno, permite dividir a tela em painéis, é mais configurável e é o mais usado hoje em dia.

Se seu servidor tiver os dois disponíveis, recomendo começar pelo tmux. Mas vou te ensinar os dois, porque nem todo ambiente tem o mesmo instalado.

Passo a passo com tmux

1. Verifique se o tmux está instalado

Conecte no seu servidor via SSH normalmente e digite:

tmux -V

Se aparecer um número de versão, ótimo, já está instalado. Se der erro de "comando não encontrado", peça ajuda ao suporte para verificar a instalação no seu plano.

2. Crie uma nova sessão

Basta digitar:

tmux new -s meutrabalho

O -s meutrabalho é só um nome que você escolhe pra identificar essa sessão depois (pode ser qualquer palavra, sem espaços). Você vai ver uma barra verde aparecer na parte de baixo do terminal — sinal de que agora você está "dentro" do tmux.

3. Rode seu comando normalmente

Dentro da sessão tmux, use o terminal exatamente como faria fora dele: rode scripts, atualize sistemas, faça o que precisar.

4. "Solte" a sessão sem fechar nada (detach)

Aqui está a mágica. Para sair da sessão sem matar o processo, aperte:

Ctrl + b, solte, depois aperte d

Você volta pro terminal "normal" e pode até fechar o programa de SSH, desligar o notebook, o que quiser — o processo continua rodando lá no servidor.

5. Volte para a sessão quando quiser (reattach)

Quando reconectar via SSH depois (em minutos, horas ou dias), digite:

tmux attach -t meutrabalho

E pronto: sua tela volta exatamente como você deixou, com o comando rodando ou já finalizado.

6. Ver todas as sessões abertas

Se esqueceu o nome que deu, liste todas as sessões ativas:

tmux ls

7. Encerrar uma sessão que não precisa mais

Depois de terminar o que precisava, para não deixar sessões "penduradas" no servidor, entre nela e digite exit, ou de fora mesmo:

tmux kill-session -t meutrabalho

Dica da Sensei: dê nomes descritivos às suas sessões (ex.: backup, importacao, deploy) em vez de nomes genéricos. Isso evita confusão quando você tiver várias rodando ao mesmo tempo.

Passo a passo com screen

1. Verifique se está instalado

screen -v

2. Crie uma nova sessão

screen -S meutrabalho

3. Rode seu comando normalmente

Use o terminal como sempre, dentro da sessão.

4. Solte a sessão (detach)

Aperte:

Ctrl + a, solte, depois aperte d

5. Volte para a sessão

screen -r meutrabalho

6. Liste as sessões ativas

screen -ls

7. Encerre quando terminar

Dentro da sessão, digite exit.

Situações comuns onde isso salva o seu dia

  1. Rodar uma migração de banco de dados grande, que demora vários minutos.
  2. Fazer upload ou download de arquivos pesados via terminal.
  3. Rodar scripts de importação/exportação que não podem ser interrompidos no meio.
  4. Trabalhar de um notebook em uma conexão instável (rede de viagem, 4G, Wi-Fi público).
  5. Deixar um processo rodando durante a madrugada e conferir o resultado no dia seguinte.

Resumo rápido para guardar

Se você lembrar só de uma coisa deste guia, que seja isto:

Sempre que for rodar algo que demora, abra uma sessão tmux ou screen antes de começar. Assim, se a conexão cair, o trabalho continua — e você só precisa "reconectar" na sessão depois, sem perder nada.

Qualquer dúvida na hora de aplicar isso no seu ambiente, é só chamar o suporte pelo painel do cliente que a gente te ajuda a configurar direitinho. 💚


Esta resposta lhe foi útil?

« Retornar