SSH & Avançado 46 visualizações

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

Ver no WHMCS

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

Olá, querido cliente da GeHost! 😊

Se você já usou o SSH para conectar ao seu servidor e tentou rodar um processo (como um script, um servidor de aplicação ou um download longo), provavelmente já percebeu que, assim que fecha a sessão, o processo para — e isso pode ser bem frustrante, né?

É por isso que hoje vamos aprender duas ferramentas poderosas do terminal: screen e tmux. Elas são como uma “caixinha de proteção” para seus processos: mesmo que você feche o SSH, o que está rodando no servidor continua vivo!

Por que isso é importante?

Imagine que você está fazendo um backup grande, rodando um script de atualização ou testando um servidor de aplicação. Se o SSH se desconectar por qualquer motivo (internet instável, fechou o terminal por acidente), o processo morre — e você perde tudo.

Com screen ou tmux, isso não acontece. O processo continua rodando no fundo, como um “fantasma” do servidor — até que você queira ver o que está acontecendo de novo.

Passo a passo: Como usar screen (recomendado para iniciantes)

Vamos começar com screen, que é mais simples de entender. É como se fosse uma “janela” dentro do seu terminal que não morre quando você sai.

  1. Conecte-se ao seu servidor via SSH (use seu cliente favorito: Putty, Terminal, etc.).

  2. Para iniciar uma nova sessão do screen, digite:

    screen -S meu_processo

    Substitua meu_processo por um nome que lembre o que você está fazendo (ex: backup, servidor_node, script_python).

  3. Agore, execute o comando que você quer manter rodando. Por exemplo:

    python3 meu_script.py

    Seu script começou! E agora, mesmo que você feche o SSH, ele continua rodando.

  4. Para sair da sessão sem matar o processo, pressione:

    • Ctrl + A, depois D

    Isso "desanexa" a sessão. Você volta ao terminal normal, mas o processo continua no servidor.

  5. Quando quiser voltar a ver o que está acontecendo, digite:

    screen -r meu_processo

    Substitua meu_processo pelo nome que você escolheu.

  6. Se precisar, você pode listar todas as sessões ativas com:

    screen -ls

    Isso mostra todos os processos em segundo plano que você criou.

Alternativa: tmux (para quem quer mais controle)

Se você já está mais familiarizado com o terminal, tmux é uma opção poderosa com mais recursos. Vamos ver o básico:

  1. Conecte-se ao servidor via SSH.

  2. Crie uma nova sessão com:

    tmux new -s meu_processo
  3. Execute seu comando (ex: node app.js).

  4. Para sair sem matar o processo, pressione:

    • Ctrl + B, depois D

    Isso "detacha" a sessão.

  5. Para voltar, use:

    tmux attach -t meu_processo
  6. Para ver todas as sessões:

    tmux ls

Dicas importantes (como um verdadeiro Sensei)

  • Se você usar screen ou tmux, não feche o terminal com um clique ou com Ctrl + C — isso pode matar o processo. Use sempre os comandos de saída corretos.

  • Se o servidor reiniciar ou você perder a conexão, o processo continua. Quando voltar, use screen -r ou tmux attach para ver o que está acontecendo.

  • Se o nome da sessão já estiver em uso, o sistema pedirá para você reutilizar ou criar uma nova. Use screen -x ou tmux attach -t para conectar a uma sessão já aberta.

  • Se precisar, você pode redirecionar a saída do processo para um arquivo (ex: python3 script.py > log.txt) para ver o que aconteceu depois.

Como saber se o comando está rodando?

Se quiser verificar se um processo está ativo no servidor, você pode usar o comando:

ps aux | grep nome_do_processo

Substitua nome_do_processo pelo nome do script ou aplicação que você está rodando.

Importante: O que não fazer

⚠️ Não use comandos como nohup + & se já está usando screen ou tmux. Isso pode causar conflitos.

⚠️ Não reinicie o servidor ou desative o serviço sem saber o que está rodando.

Conclusão

Com screen ou tmux, você ganha total controle sobre seus processos no servidor — mesmo quando o SSH se vai. É como deixar um farol aceso no meio da noite: o processo continua, e você pode voltar a qualquer momento.

Se tiver dúvidas, seu suporte está sempre disponível — e lembre-se: você está em boas mãos com a GeHost, parte do Grupo G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04).

Até a próxima, e que seu código rode com paz! 🌿

Precisa de Ajuda?

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