Como agendar o reinício automático de um serviço travado
Olá! Aqui é a Sensei da GeHost 🌱 Se você tem uma aplicação, um bot ou um script que às vezes "trava" e some do ar até alguém perceber e reiniciar na mão, este guia é pra você. Vamos criar uma pequena rotina automática que verifica se o serviço está de pé e, se não estiver, dá um "empurrãozinho" para ele voltar sozinho — sem você precisar ficar de olho o dia inteiro.
Este é um conteúdo da categoria SSH & Avançado. Ele pressupõe que você já tem alguma familiaridade com linha de comando. Se você nunca usou terminal antes, tudo bem seguir o passo a passo com calma — e, em qualquer dúvida, nosso suporte está por perto para ajudar.Antes de começar
- Verifique, no seu painel do cliente ou com o nosso suporte, se o Acesso SSH está habilitado para o seu ambiente — nem todo plano vem com isso ativado por padrão, e às vezes é só uma solicitação simples.
- Você vai precisar saber o comando que "liga" o seu serviço normalmente (por exemplo, o comando que você usa para iniciar sua aplicação Node, um script Python, um bot, etc.).
- Tenha em mãos um cliente de terminal (Terminal do Mac/Linux, PowerShell ou PuTTY no Windows) ou use o próprio Terminal disponível dentro do cPanel.
Passo 1 — Escreva um "script vigia"
A ideia é simples: um pequeno script que pergunta "meu serviço está rodando?" e, se a resposta for não, ele mesmo dá o comando para religar. Pense nele como um zelador que passa de tempos em tempos verificando se a luz da sala está acesa.
- Acesse o Gerenciador de Arquivos do cPanel (ou conecte via SSH) e crie um arquivo chamado, por exemplo,
vigia_servico.shdentro da sua pasta pessoal (fora dapublic_html, por segurança).- Cole um conteúdo parecido com este, adaptando para o nome do seu processo e o comando real de inicialização:
#!/bin/bash # Verifica se o processo está rodando; se não estiver, reinicia if ! pgrep -f "nome_do_meu_processo" > /dev/null then cd /home/SEUUSUARIO/pasta_da_aplicacao nohup ./comando_de_inicio.sh > log_vigia.txt 2>&1 & fiTroque "nome_do_meu_processo" por um trecho único que identifique o seu serviço (o nome do script ou da aplicação), e comando_de_inicio.sh pelo comando que você normalmente usa para iniciar o serviço.
Passo 2 — Dê permissão de execução
Ainda no terminal, rode:
chmod +x vigia_servico.shIsso avisa ao sistema que esse arquivo pode ser executado como um programinha, e não apenas lido como texto.
Passo 3 — Agende a verificação com um Cron Job
Agora vem a parte mágica: em vez de você lembrar de rodar esse script, o próprio servidor vai fazer isso automaticamente, em intervalos regulares.
- No cPanel, procure a ferramenta "Cron Jobs" (geralmente na seção Avançado).
- Em "Adicionar um novo Cron Job", escolha a periodicidade — por exemplo, "a cada 5 minutos" é um bom ponto de partida para um serviço que precisa de resposta rápida.
- No campo de comando, informe o caminho completo do script, assim:
/home/SEUUSUARIO/vigia_servico.sh
- Salve. Pronto — a partir de agora o servidor vai "cutucar" seu serviço no intervalo escolhido e religá-lo sozinho se ele estiver fora do ar.
Dica da Sensei: comece com um intervalo maior (a cada 15 ou 30 minutos) enquanto testa, e só depois diminua para 5 minutos se realmente precisar de uma resposta mais rápida. Isso evita sobrecarregar o ambiente com verificações repetidas demais.Passo 4 — Teste antes de confiar de olhos fechados
- Pare o serviço manualmente (do jeito que você já faz quando precisa reiniciar).
- Espere o próximo horário do Cron Job rodar.
- Confira se o serviço voltou sozinho — você pode olhar o arquivo
log_vigia.txtcriado no Passo 1 para ver se houve uma tentativa de reinício.Cuidados importantes
- Use um trecho bem específico no
pgreppara identificar seu processo — se o termo for muito genérico, o script pode "achar" que outro processo qualquer é o seu serviço.- Evite agendar o Cron Job para rodar em intervalos muito curtos (por exemplo, a cada minuto) sem necessidade real — prefira o menor intervalo que já resolve o seu caso.
- Guarde uma cópia do script fora da pasta pública do site, para que ele não fique acessível pela internet.
E é isso! Com esses quatro passos, você deixa um "cuidador automático" rodando nos bastidores, cuidando do seu serviço para você. Se em algum momento o script não se comportar como esperado, é só chamar nosso suporte — ficamos felizes em dar uma olhada junto com você. 🌿