proyecto - node.js servidor web
Node.js: no se puede ejecutar el servidor de nodos usando para siempre (7)
En primer lugar, cambiar sus scripts package.json como
"scripts": {
"start": "forever ./bin/www.js"
}
que inicie este comando en la consola de Linux: sudo npm start
solo para windows: npm start
Estoy tratando de ejecutar el servidor de nodo usando el comando forever. Instalé para siempre globalmente usando:
npm install forever -g
Después de instalar para siempre, trato de ejecutar mi script de nodo usando el siguiente comando:
node_modules/.bin/forever start app.js
A continuación se muestra mi consola:
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: app.js
¡Por favor, ayúdame a resolver este problema!
Esto resolvió mi problema:
forever start -c node [path/to/app]
"-c" significa - Ejecutar commnad; y luego simplemente ejecuta a través de nodejs
De esta manera, obtienes el Respawn por defecto de min. 1000 ms de tiempo de actividad
Tomado de: https://github.com/nodejitsu/forever/issues/422 , por "Basarat"
No hay problema aquí, aparte de las advertencias para configuraciones que siempre recomienda que declare. Si ve el mensaje final allí, le dice que ha procesado su script. Simplemente ejecuta la forever list
y deberías ver tu script ejecutándose.
Me encontré con lo mismo cuando instalo npm a través del repositorio yum ( yum install npm
) y luego lo instalo para siempre, mientras que cuando instalo el nodo y npm a través de los scripts de shell y luego lo instalo para siempre, no ocurre. Debe tener algo que ver con las fórmulas para el instalador del paquete o con el alias potencialmente faltante con indicadores con el instalador para establecer esos valores detrás de la escena.
Eso no significa que no esté funcionando. Vea más abajo. Creé un archivo js con un código de muestra del sitio del nodo y lo ejecuté manualmente (vacié el firewall para abrir el puerto para la aplicación temporalmente, pero no lo necesita):
[root@app1 ~]# vi example.js
[root@app1 ~]# apf -f
apf(23924): {glob} flushing & zeroing chain policies
apf(23924): {glob} firewall offline
[root@app1 ~]# node example.js
Server running at http://127.0.0.1:1337/
Entonces empiezo a usar la aplicación para siempre:
^C[root@app1 ~]# forever start example.js
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: example.js
Ahora verifico si mi aplicación se está ejecutando:
[root@app1 ~]# forever list
info: Forever processes running
data: uid command script forever pid logfile uptime
data: [0] dan1 /usr/bin/node example.js 23976 23978 /root/.forever/dan1.log 0:0:0:27.320
[root@app1 ~]#
Primero detén todas las aplicaciones en ejecución:
forever stopall
entonces usa este comando. Funciona para mí y resolvió mi problema:
forever -w ./bin/www
y deberías encontrar esto en el archivo package.json:
"scripts": {
"start": "node ./bin/www"
}
Espero que te ayude.
Si configura un módulo globaly (opción -g) "por siempre" está en la ruta $
forever start app.js
Deberia trabajar.
Si está utilizando node js con el framework Express, el script no comenzará a usar:
forever start app.js
Primero detén todas las aplicaciones en ejecución:
forever stopall
Cuando se utiliza este marco Express, debe iniciarse con:
forever start ./bin/www
Una cosa que también produce el mismo tipo de salida, pero no inicia la aplicación, es si forever
no se puede escribir en el archivo de registro especificado. Tuve un caso en el que el archivo de registro se había vuelto demasiado grande y esto impidió que se iniciara el proceso.