start node node.js forever

node.js - restart forever node



Advertencias de tiempo de ejecución de NodeJS Forever y spinSleepTime (5)

Estoy intentando ejecutar la función forever para node.js pero obtengo advertencias por debajo;

C:/serv>forever start SERVER.js warn: --minUptime not set. Defaulting to: 1000ms warn: --spinSleepTime not set. Your script will exit if it does not stay up f or at least 1000ms info: Forever processing file: SERVER.js

Cómo configurar --minUptime y --spinSleepTime para eliminar estas advertencias

Paquete instalado forever con npm install forever -g


En breve:

When stop if hadRunTime >= minUptime restart else if spinSleepTime != 0 wait spinSleepTime restart else stop and no restart

@Megadix La respuesta tiene algo de malo con spinSleepTime . fail-fast.js reiniciará spinSleepTime , pero fail-slow.js se reiniciará inmediatamente, ¡no hay que esperar! Puede ser probado por:

console.log((new Date()).getTime()); setTimeout(() => { process.exit(1); }, 2000);

salida como:

1468812185697 error: Forever detected script exited with code: 1 error: Script restart attempt #1 1468812187766 error: Forever detected script exited with code: 1 error: Script restart attempt #2 1468812189834 error: Forever detected script exited with code: 1 error: Script restart attempt #3 1468812191901 error: Forever detected script exited with code: 1 error: Script restart attempt #4 1468812193977 error: Forever detected script exited with code: 1 error: Script restart attempt #5 1468812196039 error: Forever detected script exited with code: 1 error: Script restart attempt #6 1468812198107 error: Forever detected script exited with code: 1 error: Script restart attempt #7 1468812200172 error: Forever detected script exited with code: 1


Estas son sólo advertencias. Podrías seguir ignorándolos, si quieres. Pero si desea establecerlos de forma explícita, forever --help le indica cómo hacerlo. Simplemente comienza forever con:

forever start --minUptime 1000 --spinSleepTime 1000 SERVER.js


La documentación no es muy exhaustiva, un poco de información adicional.

En los siguientes ejemplos usaremos dos scripts:

fail-fast.js:

process.exit(1);

fail-slow.js:

setTimeout(() => { process.exit(1); }, 2000);

1) utilizando valores por defecto

forever fail-fast.js

fail-fast.js script fail-fast.js se ejecutará solo una vez , luego no se realizarán otros intentos de inicio.

forever fail-slow.js

fail-slow.js script fail-slow.js se reiniciará indefinidamente , ya que permanece más de 1000 ms (el valor predeterminado de minUptime si no se especifica). Puede limitar el número de reinicios con el parámetro -m .

2) configurando solo minUptime

forever --minUptime 10000 fail-fast.js forever --minUptime 10000 fail-slow.js

fail-fast.js y fail-slow.js nunca se reiniciarán , ya que minUptime a 10 segundos y ahora fail-slow.js se considera un giro.

3) estableciendo spinSleepTime

Cada vez que establezca spinSleepTime (con o sin minUptime ), su proceso se reiniciará incluso si se considera ''giratorio'' .

forever --spinSleepTime 30000 fail-fast.js forever --spinSleepTime 30000 fail-slow.js

Ambos scripts se reiniciarán para siempre , esperando spinSleepTime milisegundos entre los reinicios.


Supongo que está utilizando el módulo Express que es la forma después de que usted use - siempre inicie SERVER.js - su servidor no se está ejecutando, porque el módulo Express ejecuta el servidor en la ruta ./bin/www - por lo que debe usar este comando - siempre inicie ./bin/www --name = "SERVER" - nombre es el nombre de su archivo js, ​​de forma predeterminada app.js