Já tem uns 4 anos que eu tenho um site rodando em um servidor nodejs.
Não sei por qual motivo, mas recentemente o banco de dados começou a parar e consequentemente o servidor nodejs também. Já resolvi o problema fazendo o banco de dados reiniciar caso ele caia, só que ainda não achei nenhuma forma de fazer o mesmo com a aplicação nodejs. Alguém tem alguma solução.
Utilizo linux e o modulo forever do npm para rodar o servidor nodejs.
Como vc tá iniciando o processo do node?
Com o forever start
mostra o script brother.
Digo isso pq eu uso o forever tbm e sempre que dá algum erro ele restarta. Coisa de segundos.
"scripts": {
"start": "forever start ./src/index.js"
},
Olá, como você está utilizando Linux, uma alternativa para o seu programa ficar em execução constante, seria criar um serviço com systemd. Mas o ideal é você encontrar a causa do problema que está fazendo sua aplicação reiniciar.
usa o pm2. ele faz tudo isso para voce alem de criar varias instancias para voce caso queria. alem do mais no linux ele cria um servico para voce ficar usando systemctl start/stop/restart.
a outra vantagem dele que uma vez iniciado, ele nao deixa a aplicacao cair
achei o link do blog que fala do pm2. Da uma lida nele. E ve o site. Eu subi umas apps com ele e nao tenho dor de cabeca
https://dev.to/codecasts/escalando-e-performando-aplicacoes-node-js-2j20
Obrigado. Consegui resolver usando o Crontab pra executar de 1 em um 1 minuto, um programa em python que verifica se o meu site esta online. Caso ele não esteja, roda um comando do terminal, que reinicia o banco de dados e a aplicação em seguida…
Já tinha usado essa solução apenas para banco de dados, pois ela não estava funcionando com o comando forever start pro nodejs. Pois dentro da minha aplicação nodejs, tem o módulo fs para leitura de páginas html, e no endereço desses html, eu estava colocando o diretório dessa forma ./pagina-html/index.html… Funciona se executar o forever start pelo terminal, mas pelo crontab não… Foi só colocar o diretório completo das páginas, dessa forma /home/rodrigo/site/pagina-html/index.html, que funcionou perfeitamente.
Obrigado a todos que me ajudaram.