SSH & Avançado 41 visualizações

Como usar tmux ou screen para manter tarefas rodando após desconectar do SSH

Ver no WHMCS

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

  1. Conecte via SSH normalmente ao seu servidor, do jeito que você já costuma fazer.
  2. 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.
  3. 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
  4. 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
  5. Para "sair" da sessão sem interromper a tarefa (isso é o pulo do gato!), aperte:
    Ctrl + b, solte, e depois aperte d
    Isso "desanexa" (detach) você da sessão — mas ela continua rodando no servidor, mesmo que você feche o terminal ou desconecte a internet.
  6. Pode fechar o terminal, desligar o notebook, sair pra tomar um café ☕ — sua tarefa segue rodando lá.
  7. 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.
  8. Se tiver mais de uma sessão aberta e quiser ver a lista de todas:
    tmux ls
  9. 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:

  1. Conecte via SSH e verifique se está instalado:
    screen -v
  2. Crie uma nova sessão nomeada:
    screen -S minha-tarefa
  3. Rode seu comando normalmente dentro da sessão.
  4. Para se desconectar sem matar a tarefa, aperte:
    Ctrl + a, solte, e depois aperte d
  5. Pra voltar depois, conecte via SSH de novo e digite:
    screen -r minha-tarefa
  6. Pra ver todas as sessões abertas:
    screen -ls
😊 Dica da Sensei: sempre dê um nome pra sua sessão (-s nome no tmux, -S nome no 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!
Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.