Como usar screen ou nohup para deixar um script rodando após encerrar a sessão SSH
Olá, querido(a) cliente da GeHost! 🌟
Você já precisou rodar um script no servidor — talvez um backup, um processamento de dados ou um sistema de atualização — e, ao fechar a sessão SSH, percebeu que o script parou? 😬 Não se preocupe! Isso é comum, mas tem solução. Vamos te ensinar, de forma simples e prática, como usar duas ferramentas poderosas do Linux:screen e nohup. Elas garantem que seu script continue rodando mesmo após você sair do terminal.
Vamos lá, com calma e foco — você é capaz! 💪
---
Antes de começar: o que você precisa saber
Antes de usar qualquer comando, é bom lembrar:
- Seu servidor da GeHost é baseado em Linux e usa o cPanel.
- Para acessar o servidor, você usa o SSH (via terminal ou cliente como PuTTY, Termius, etc.).
- Seu script precisa estar no servidor (por exemplo, na pasta
public_htmlou em um diretório personalizado).
Se você ainda não sabe como se conectar via SSH, pode consultar nosso guia “Conectando-se ao servidor via SSH” no painel do cliente.
---Opção 1: Usar screen — o “ambiente virtual” para scripts
Imagine o screen como uma janela virtual que permanece aberta mesmo quando você fecha o terminal. É perfeito para scripts longos.
- Crie uma nova sessão screen com um nome fácil de lembrar:
- Execute seu script dentro dessa sessão:
- Pressione Ctrl + A, depois D para desconectar da sessão sem parar o script.
- Para voltar à sessão mais tarde, use:
- Se quiser fechar a sessão, digite
exitdentro da tela, ou usescreen -S meu_script -X quit.
screen -S meu_script
Substitua meu_script por um nome que faça sentido para você (ex: backup_diario).
php /home/usuario/meu_script.php
Substitua o caminho pelo caminho real do seu script.
Isso é como "salvar e sair" — o script continua rodando no fundo!
screen -r meu_script
Você verá o progresso do script como se nunca tivesse saído.
---Dica do Sensei: Use
screen -lspara ver todas as sessões ativas. Assim você não perde o controle!
Opção 2: Usar nohup — o “script que ignora o sinal de morte”
Se você prefere algo mais direto, o nohup é sua melhor amiga. Ele significa “no hang up” — ou seja, “não se importa se o terminal for fechado”.
- Execute seu script com
nohup: nohup— garante que o script continue rodando.> saida.log— salva a saída (mensagens de erro e sucesso) em um arquivo.2>&1— redireciona erros para o mesmo arquivo.&— roda em segundo plano.- Depois de executar, você pode fechar o terminal com segurança.
- Para verificar o progresso, use:
- Se quiser parar o script, você precisa encontrar o processo com
ps aux | grep phpe depois usarkill [ID].
nohup php /home/usuario/meu_script.php > saida.log 2>&1 &
Explicando:
O script continua rodando no servidor!
tail -f saida.log
Isso mostra as últimas linhas do arquivo — como um “olhar por cima” do que está acontecendo.
---Dica do Sensei: Sempre nomeie o arquivo de log com algo claro, como
backup.logouprocessamento_2025.log. Assim, você não se perde!
Como saber se o script está rodando?
Use o comando:
ps aux | grep nome_do_seu_script
Substitua nome_do_seu_script pelo nome do arquivo ou pelo comando que você usou.
Se aparecer algo como php /home/usuario/meu_script.php, seu script está vivo! 🎉
Conclusão: escolha o que te faz mais confortável
Se você quer controlar o script como se fosse uma janela aberta, use screen. Ideal para scripts longos ou que precisam de interação.
Se você quer simplesmente rodar e sair, sem se preocupar, use nohup. Perfeito para tarefas automáticas.
💡 Importante: Lembre-se de que, mesmo com essas ferramentas, seu script só roda enquanto o servidor estiver ligado. Na GeHost, isso é garantido 24/7 — mas sempre verifique seu plano no painel.
---Quer ajuda extra?
Se tiver dúvidas, entre em contato com nosso suporte — estamos aqui para te ajudar! 🤝
Seu acesso ao painel: painel.gehost.com.br
Se precisar de um orçamento, consulte os planos disponíveis lá. Todos incluem e-mail profissional, domínio e suporte técnico.
Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*