Saltar al contenido

El nodo JS reinicia automáticamente todo el proceso JS para siempre cuando el servidor se cae o falla

Encontramos la respuesta a este atolladero, al menos eso pensamos. Si continuas con preguntas coméntalo, para nosotros será un placer ayudarte

Solución:

Un servidor (NodeJS) no debe detenerse sin motivo. La mayoría de las veces, se debe a un error 500 que no se ha catched y detenga el servidor, luego tendrá que reiniciarlo.
forever esta usando node por defecto para iniciar su servidor.

nodemon es un paquete npm que reinicia su servidor cuando cambia el código o cuando su servidor se detiene.

Puedes usar forever y nodemon juntos haciendo:

forever start nodemon --exitcrash app.js

o

forever start -c nodemon app.js

O, como se sugiere en otras respuestas, puede usar PM2, ¡lo que sería mejor para la producción!

Yo sugeriría el uso de PM2

Esta es la mejor opción para ejecutar en un servidor de producción.

¿Cuáles son las ventajas de ejecutar su aplicación de esta manera?

  • Es fácil de configurar y ejecutar.
  • PM2 reiniciará automáticamente su aplicación si falla.
  • PM2 mantendrá un registro de sus excepciones no controladas; en este caso, en un archivo en /home/safeuser/.pm2/logs/app-err.log.
  • Con un comando, PM2 puede garantizar que cualquier aplicación que administre se reinicie cuando el servidor se reinicie. Básicamente, significa que su aplicación de nodo comenzará como un servicio.

ref: https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps

Así que este es un ejemplo de uso cronpara ejecutar scripts que pueden reiniciar el servicio/realizar alguna tarea automatizada. Básicamente, creé algunos scripts que necesito ejecutar en ciertos intervalos de tiempo en mi servidor. Para su caso, desea crear un script que verifique automáticamente el estado de su forever.js y, si arroja una respuesta incorrecta, ejecute el forever restartall comando que mencionas arriba.
crontab

Puede configurar esto creando una nueva entrada crontab en el servidor. En lo que respecta al guión, De ninguna manera soy un gurú de script bash; Hice un script simple que funciona para mí. Aquí hay un ejemplo de cómo verificar un servicio en mi máquina y reiniciarlo si no se está ejecutando.

#!/bin/bash
zabbix_server="service zabbix-server"
zabbix_agent="service zabbix-agent"
logfile=zabbix_auto_restart.log
logfilePath=/etc/scripts/zabbix/$logfile
zabbix_server_running=0
zabbix_agent_running=0

grep_agent () grep zabbix_agentd 

grep_server () grep zabbix_server 

check_zabbix_agentd () mutt -s "Zabbix Auto-restart Script Just Ran" 

        else
           let zabbix_agent_running=1
        fi


check_zabbix_server () mutt -s "Zabbix Auto-restart Script Just Ran" [email protected]
else let zabbix_server_running=1 fi main_loop () until ((zabbix_server_running == 1 && zabbix_agent_running == 1)); do check_zabbix_agentd check_zabbix_server sleep 1.5 done main_loop

Comentarios y valoraciones del tutorial

Recuerda dar recomendación a este post si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 3.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *