Como usar tmux ou screen para manter tarefas rodando após desconectar do SSH
Oi! Aqui é a Sensei da GeHost 🥋 Já aconteceu de você rodar um comando longo lá no terminal (SSH) — tipo compactar um backup, instalar algo ou rodar um script — e a conexão cair, ou você fechar o notebook, e o processo morrer no meio? Pois é, isso é super comum e tem solução simples: usar um multiplexador de terminal, como o tmux ou o screen.
Neste guia eu te explico o que é, por que usar, e o passo a passo pra você nunca mais perder uma tarefa por causa de uma conexão que caiu.
Por que isso acontece?
Quando você conecta via SSH e roda um comando, esse comando fica "preso" àquela sessão de terminal. Se a sessão cai (internet caiu, notebook foi pra dormir, você fechou o terminal sem querer), o sistema geralmente encerra também os processos que estavam rodando ali dentro. Resultado: seu comando para no meio, mesmo sem você ter pedido.
💡 Dica da Sensei: isso vale principalmente pra tarefas demoradas — restaurar um backup grande, rodar uma migração, baixar/compactar muitos arquivos, instalar dependências pesadas. Comandos rápidos (que terminam em segundos) você nem precisa se preocupar.
A solução: tmux ou screen
Tanto o tmux quanto o screen fazem a mesma coisa na prática: eles criam uma sessão "virtual" de terminal que continua rodando no servidor mesmo depois que você desconecta. Você entra, começa a tarefa, "sai" da sessão sem matar ela, e quando quiser volta a acompanhar de onde parou — de qualquer lugar, até de outro computador.
Não precisa escolher um "certo": os dois fazem o trabalho. O tmux é um pouco mais moderno e flexível (permite dividir a tela em painéis, por exemplo); o screen é mais antigo e também confiável. Vou te mostrar os dois — use o que estiver disponível no seu ambiente.
Verificando se você tem acesso ao terminal (SSH)
Pra usar tmux ou screen você precisa de acesso SSH à sua hospedagem. Isso é um recurso técnico que pode ou não estar disponível dependendo do seu plano — se você não tem certeza se seu plano inclui acesso SSH, dê uma olhada no painel.gehost.com.br ou fale com o nosso suporte que a gente confirma certinho pra você.
Passo a passo com tmux
- Conecte via SSH normalmente ao seu servidor, do jeito que você já costuma fazer.
-
Verifique se o tmux está instalado digitando:
tmux -V
Se aparecer um número de versão, tudo certo! Se der erro de "comando não encontrado", peça ajuda ao nosso suporte pra verificar a instalação no seu ambiente. -
Crie uma nova sessão dando um nome fácil de lembrar (isso ajuda muito quando você tem mais de uma tarefa rodando):
tmux new -s minha-tarefa -
Você vai perceber que a tela muda um pouquinho (geralmente aparece uma barra verde ou verde-escura embaixo). Isso significa que você está dentro da sessão tmux. Agora é só rodar seu comando normalmente, por exemplo:
seu-comando-demorado-aqui -
Para "sair" da sessão sem interromper a tarefa (isso é o pulo do gato!), aperte:
Ctrl + b, solte, e depois aperted
Isso "desanexa" (detach) você da sessão — mas ela continua rodando no servidor, mesmo que você feche o terminal ou desconecte a internet. - Pode fechar o terminal, desligar o notebook, sair pra tomar um café ☕ — sua tarefa segue rodando lá.
-
Quando quiser voltar pra ver como está a tarefa, conecte via SSH de novo e digite:
tmux attach -t minha-tarefa
Pronto, você volta exatamente pra onde estava, vendo tudo que aconteceu enquanto esteve fora. -
Se tiver mais de uma sessão aberta e quiser ver a lista de todas:
tmux ls -
Quando a tarefa terminar e você não precisar mais daquela sessão, é só encerrar de dentro dela com:
exit
Passo a passo com screen
Se o seu ambiente tiver o screen em vez do tmux, o fluxo é bem parecido:
-
Conecte via SSH e verifique se está instalado:
screen -v -
Crie uma nova sessão nomeada:
screen -S minha-tarefa - Rode seu comando normalmente dentro da sessão.
-
Para se desconectar sem matar a tarefa, aperte:
Ctrl + a, solte, e depois aperted -
Pra voltar depois, conecte via SSH de novo e digite:
screen -r minha-tarefa -
Pra ver todas as sessões abertas:
screen -ls
😊 Dica da Sensei: sempre dê um nome pra sua sessão (-s nomeno tmux,-S nomeno screen). Assim, se você tiver várias tarefas rodando ao mesmo tempo, fica fácil saber qual é qual na hora de voltar.
Perguntas rápidas (FAQ)
Se eu desligar meu computador, a tarefa para?
Não! A sessão tmux/screen roda no servidor, não no seu computador. Uma vez que você "desanexou" (detach) corretamente, pode desligar seu notebook tranquilo — a tarefa continua no servidor.
E se eu simplesmente fechar a janela do terminal sem "desanexar" primeiro?
O ideal é sempre fazer o detach (Ctrl+b d no tmux, Ctrl+a d no screen) antes de fechar. Se a conexão cair de forma abrupta (sem detach), na maioria das vezes a sessão continua viva do mesmo jeito — mas o caminho seguro e garantido é sempre desanexar antes de sair.
Posso ter várias tarefas ao mesmo tempo?
Sim! Basta criar sessões com nomes diferentes (tmux new -s tarefa1, tmux new -s tarefa2...) e alternar entre elas com o comando de "attach" usando o nome de cada uma.
Não sei se meu plano tem acesso SSH ou se o tmux/screen está disponível. E agora?
Sem problema! É só entrar em contato com o nosso suporte pela sua área de cliente em painel.gehost.com.br que a gente confirma certinho o que está disponível no seu ambiente e te ajuda com o que precisar.
🙌 Pronto! Agora você já sabe como manter suas tarefas rodando com tranquilidade, mesmo que a conexão caia. Qualquer dúvida, pode chamar a gente — é um prazer ajudar!