SSH & Avanzado 40 visualizações

Como usar o screen ou tmux para manter um processo rodando após fechar o SSH

Ver no WHMCS

Como manter um processo rodando no SSH mesmo depois de fechar a conexão (screen e tmux)

Oi! Aqui é a Sensei da GeHost 🥋 Se você já rodou um comando pelo SSH — tipo instalar algo, rodar um script demorado ou subir um processo — e na hora que a conexão caiu (ou você fechou o terminal) o processo morreu junto, esse guia é pra você. Vou te ensinar duas ferramentas simples que resolvem isso de vez: o screen e o tmux.

Em resumo: quando você fecha o SSH sem essas ferramentas, o sistema entende que "acabou a sessão" e mata tudo que estava rodando dentro dela. O screen e o tmux criam uma sessão "à parte", que continua viva no servidor mesmo sem você conectado.

O que são screen e tmux?

Pensa neles como uma "sala" dentro do servidor. Você entra nessa sala pelo SSH, roda o que precisa, e pode sair da sala sem fechar ela. O processo continua rodando lá dentro, e quando você quiser, é só voltar e conferir como está.

Os dois fazem basicamente a mesma coisa. O screen costuma vir pronto na maioria dos servidores; o tmux é um pouco mais moderno e tem alguns recursos a mais (como dividir a tela em blocos). Se seu servidor não tiver um dos dois instalado, fale com o suporte pra verificar a disponibilidade no seu plano.

Passo a passo com o screen

  1. Conecte no SSH normalmente, como você já costuma fazer.
  2. Verifique se o screen está disponível digitando:
    screen -v
    Se aparecer uma versão, está tudo certo. Se der "comando não encontrado", peça ajuda ao suporte pra confirmar a disponibilidade dele no seu ambiente.
  3. Crie uma nova sessão com um nome fácil de lembrar (assim fica mais organizado se você tiver mais de uma rodando):
    screen -S meuprocesso
  4. Você vai cair dentro dessa "sala nova" — a tela pode até parecer igual, mas agora você está dentro da sessão do screen. Rode o comando ou processo que precisa ficar ativo normalmente.
  5. Para sair sem matar o processo, aperte:
    Ctrl + A, solte, e depois aperte D (de "detach").
    Você volta pro terminal normal e o processo continua rodando por trás, mesmo se você fechar o SSH ou desligar o computador.
  6. Para voltar e ver o processo depois, conecte no SSH de novo e digite:
    screen -r meuprocesso
    Pronto, você está de volta dentro da sessão, vendo tudo rodando.
  7. Se quiser listar todas as sessões que estão ativas:
    screen -ls
  8. Quando o processo já tiver terminado e você não precisar mais da sessão, entre nela (screen -r nome) e digite exit pra encerrá-la de vez.

Passo a passo com o tmux

O fluxo é bem parecido, só muda um pouco a "sintaxe":

  1. Verifique se está disponível: tmux -V
  2. Crie uma sessão nova com nome: tmux new -s meuprocesso
  3. Rode seu processo normalmente dentro dela.
  4. Para sair sem encerrar ("desanexar"), aperte:
    Ctrl + B, solte, e depois aperte D.
  5. Para voltar depois:
    tmux attach -t meuprocesso
  6. Para listar as sessões ativas:
    tmux ls
  7. Pra encerrar de vez, entre na sessão e digite exit.

Dicas importantes da Sensei

💡 Dica 1: sempre dê um nome à sua sessão (o -S nome no screen ou o -s nome no tmux). Sem nome, o sistema gera um número aleatório e fica mais difícil de identificar depois — principalmente se você tiver várias sessões abertas ao mesmo tempo.
💡 Dica 2: "sair sem encerrar" (detach) é diferente de digitar exit. Detach mantém tudo rodando; exit encerra a sessão e tudo que está dentro dela. Use detach quando quiser que o processo continue, e exit só quando ele já tiver terminado o que precisava fazer.
💡 Dica 3: se a sua conexão SSH cair de repente (sem querer, por exemplo por causa da internet), sem problema: se você já estava dentro de uma sessão do screen ou tmux, ela continua rodando normalmente no servidor. É só reconectar e usar o comando de "voltar" (screen -r ou tmux attach) pra ver como ficou.

Quando usar isso?

  • Rodar scripts ou instalações que demoram bastante tempo.
  • Deixar um processo em segundo plano funcionando enquanto você faz outras coisas.
  • Evitar perder o progresso de um comando por causa de uma queda de conexão.

E é isso! Com o screen ou o tmux, você ganha muito mais tranquilidade pra trabalhar via SSH sem medo de perder o que estava rodando. Se tiver qualquer dúvida na hora de aplicar, é só chamar o suporte da GeHost pelo painel.gehost.com.br que a gente te ajuda. 🙌

Precisa de Ajuda?

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