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.
Conecte-se ao seu servidor via SSH (use seu cliente favorito: Putty, Terminal, etc.).
Para iniciar uma nova sessão do
screen, digite:screen -S meu_processoSubstitua
meu_processopor um nome que lembre o que você está fazendo (ex:backup,servidor_node,script_python).Agore, execute o comando que você quer manter rodando. Por exemplo:
python3 meu_script.pySeu script começou! E agora, mesmo que você feche o SSH, ele continua rodando.
Para sair da sessão sem matar o processo, pressione:
Ctrl + A, depoisD
Isso "desanexa" a sessão. Você volta ao terminal normal, mas o processo continua no servidor.
Quando quiser voltar a ver o que está acontecendo, digite:
screen -r meu_processoSubstitua
meu_processopelo nome que você escolheu.Se precisar, você pode listar todas as sessões ativas com:
screen -lsIsso 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:
Conecte-se ao servidor via SSH.
Crie uma nova sessão com:
tmux new -s meu_processoExecute seu comando (ex:
node app.js).Para sair sem matar o processo, pressione:
Ctrl + B, depoisD
Isso "detacha" a sessão.
Para voltar, use:
tmux attach -t meu_processoPara ver todas as sessões:
tmux ls
Dicas importantes (como um verdadeiro Sensei)
Se você usar
screenoutmux, não feche o terminal com um clique ou comCtrl + 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 -routmux attachpara 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 -xoutmux attach -tpara 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! 🌿