Como agendar reinício automático de uma aplicação Node.js travada
Olá, viajante do mundo digital! 👋 Se você está aqui, provavelmente já passou pela dor de ver sua aplicação Node.js parada, sem resposta, como se tivesse "dormindo" no servidor. Não se preocupe — isso é comum, especialmente em ambientes de produção. A boa notícia é que com um pequeno truque no sistema, você pode automatizar o reinício quando isso acontecer. E aqui, na GeHost, vamos te ensinar como, passo a passo, com carinho e clareza.
Por que isso acontece?
Aplicações Node.js são poderosas, mas, às vezes, por falhas no código, uso excessivo de memória ou erros não tratados, elas podem travar. Quando isso acontece, o servidor continua rodando, mas sua aplicação não responde. O que fazemos? Reinciamos manualmente… ou melhor, automatizamos o reinício para não precisar ficar de olho 24h por dia.
Dica do Sensei: Nunca deixe uma aplicação travada sem monitoramento. Automatizar o reinício é como ter um assistente que cuida do seu sistema quando você está dormindo.
Passo a passo: Agendando reinício automático
-
Entre no painel da GeHost pelo endereço painel.gehost.com.br. Use seu usuário e senha (os mesmos que você usa para acessar seu domínio ou e-mail).
-
Depois de logado, você verá o painel inicial do cPanel. Procure pela seção chamada “Gerenciamento de Processos” ou “Processos”. Se não vir, clique em “Terminal” (em Ferramentas) — é aí que vamos fazer o truque.
-
Clique em “Terminal” (ou “SSH Access” se disponível). Isso abrirá um terminal direto no servidor.
-
Use o comando abaixo para verificar se sua aplicação está rodando. Substitua
seu-app.jspelo nome real do seu arquivo principal (ex:server.jsouapp.js):ps aux | grep seu-app.jsSe aparecer algo como
node seu-app.jsna lista, a aplicação está rodando. Se não aparecer nada, ela está parada. -
Agende um job de reinício automático usando o crontab (um cronômetro do sistema). Digite este comando:
crontab -eIsso abrirá um editor de texto. Se for a primeira vez, talvez apareça uma mensagem sobre escolher um editor. Selecione
nano(digite1e pressione Enter). -
Na tela do editor, insira esta linha para reiniciar a aplicação a cada 15 minutos:
*/15 * * * * /usr/bin/node /caminho/completo/para/seu-app.jsImportante: Substitua
/caminho/completo/para/seu-app.jspelo caminho real da sua aplicação dentro dopublic_htmlouwww. Por exemplo:/home/seuusuario/public_html/app.js. -
Para salvar, pressione Ctrl + O, depois Enter. Para sair, pressione Ctrl + X.
-
Pronto! O sistema agora vai tentar reiniciar sua aplicação a cada 15 minutos. Se ela travar, o cron vai rodar o comando novamente, trazendo-a de volta à vida.
Como saber se está funcionando?
Após agendar, você pode testar manualmente:
- Abra o Terminal no cPanel.
- Use
ps aux | grep seu-app.jspara ver se está rodando. - Se não estiver, espere 15 minutos e verifique de novo — o cron deve ter reiniciado.
Dica do Sensei: Para evitar que o sistema fique em loop se a aplicação travar constantemente, considere adicionar um arquivo de sinalização (como um
tmp/running.lock) para evitar reinícios múltiplos. Mas isso é para quem quer ir além do básico. 😊
Importante: Cuidados e boas práticas
Seu plano de hospedagem na GeHost permite esse tipo de configuração, mas lembre-se:
- Não abuse do reinício automático. Se a aplicação travar a cada 5 minutos, o problema está no código, não no cron.
- Use o Terminal com atenção. Comandos errados podem causar problemas.
- Se precisar de ajuda, nosso suporte está disponível — e já está incluso no seu plano. Basta abrir um ticket no painel.
Conclusão
Reiniciar uma aplicação travada não precisa ser um pesadelo. Com um pouco de atenção e um cronograma simples, você pode manter seu site ou API funcionando, mesmo que a aplicação tenha um dia de "preguiça". Lembre-se: você não está sozinho. A GeHost está aqui com você, sempre.
Se este guia te ajudou, compartilhe com um colega. E se tiver dúvidas, não hesite — o suporte da GeHost é seu aliado.
Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (marca institucional Entexp, entexp.com.br). Dono: Raphael Neves Koga (desde 2015).*