visual tutorial studio run proyecto node crear code app node.js

node.js - tutorial - npm install



¿Cómo ejecutar la aplicación node.js para siempre cuando la consola está cerrada? (9)

Definitivamente recomendaría pm2
npm install -g pm2

Para iniciar el servidor: pm2 start [yourServerFile.js]
Para detener el servidor: pm2 stop [yourServerFile.js]

Cerrar cliente y servidor se ejecutará para siempre ... también se reiniciará si la aplicación falla.
He estado ejecutando un servidor de nodos en Ubuntu durante meses sin problemas

Me conecto a mi servidor remoto a través de ssh. Luego, inicio mi aplicación node.js con Forever . Todo funciona bien hasta que cierro la ventana de mi consola. ¿Cómo ejecutar la aplicación node.js FOREVER en mi servidor remoto incluso cuando cierro mi conexión a través de ssh? Solo quiero iniciar una aplicación y cerrar mi copmputer. Mi aplicación debería funcionar en segundo plano en mi servidor remoto.


Dos respuestas: una para Windows, una para * nix:

En Windows, puede usar el comando de inicio para iniciar el proceso desconectado de su instancia de cmd.exe :

start node example.js

En * nix, hay dos aspectos de esto: desconectar el proceso de la consola y asegurarse de que no recibe la señal HUP ("colgar"), a lo que la mayoría de los procesos (incluido el nodo) responderán al finalizar. El primero es posiblemente opcional, pero el último es necesario.

Comenzar desconectado de la consola es fácil: por lo general, simplemente coloca un signo & ( & ) al final de la línea de comando:

# Keep reading, don''t just grab this and use it node example.js &

Pero lo anterior no protege el proceso de las señales HUP . El programa puede o no recibir HUP cuando cierra el shell (consola), dependiendo de una opción de shell llamada huponexit . Si huponexit es true , el proceso recibirá HUP cuando el shell salga y presumiblemente terminará.

huponexit es false huponexit predeterminada en las diversas variantes de Linux que he usado, y de hecho utilicé lo anterior durante años hasta que coderjoe y otros me ayudaron a comprender (en un flujo de comentarios muy largo en la respuesta que puede haberse eliminado desde entonces) que confiaba en que huponexit era false .

Para evitar la posibilidad de que huponexit sea true en su entorno, explícitamente use nohup . nohup ejecuta el proceso inmune a las señales HUP . Lo usas así:

nohup node example.js > /dev/null &

o

nohup node example.js > your-desired-filename-or-stream-here &

La redirección es importante; si no lo haces, terminarás con un archivo nohup.out que contiene el resultado de stdout y stderr . (Por defecto, nohup redirecciona stderr a stdout , y si stdout está enviando a un terminal, lo redirecciona a nohup.out . nohup.out también redirige stdin si está recibiendo desde un terminal, por lo que no tenemos que hacer eso. man nohup o info coreutils ''nohup invocation'' para más detalles).

En general, para estas cosas, quiere usar un monitor de proceso para que, si el proceso falla por algún motivo, el monitor lo reinicie, pero lo anterior funciona para casos simples.


En Linux, SSH en tu servidor remoto y ejecuta

screen

para lanzar a una nueva pantalla.

Finalmente, escriba ctrl a d para separar la sesión de pantalla sin matar el proceso.

Más información here .


Esta es solo una respuesta parcial para Windows . app.vbs una sola línea de Visual Basic Script llamada app.vbs que iniciará su aplicación de nodo dentro de una ventana oculta:

CreateObject("Wscript.Shell").Run "node app.js", 0

Para ejecutarlo automáticamente al inicio, abra el directorio %AppData%/Microsoft/Windows/Start Menu/Programs/Startup/ y agregue un acceso directo al archivo app.vbs .

Más información en: https://keestalkstech.com/2016/07/start-nodejs-app-windowless-windows/


Si está ejecutando node.js en un entorno de producción, debería considerar usar PM2, forever.js o Nodemon.

No hay escasez de artículos en línea que comparen los diferentes paquetes.


Siempre, simple es lo mejor, no hay necesidad de advenedizo, no hay necesidad para siempre, simplemente nohup:

nohup node file.js &

Créanme, me estoy ejecutando así que para mi caso!


También es posible que desee considerar el uso de la utilidad advenedizo. Le permitirá iniciar, detener y reiniciar su aplicación de nodo como un servicio. Upstart puede configurarse para reiniciar automáticamente su aplicación si falla.

Instalar advenedizo:

sudo apt-get install upstart

Cree un script simple para su aplicación que se verá algo así como:

#!upstart description "my app" start on started mountall stop on shutdown # Automatically Respawn: respawn respawn limit 99 5 env NODE_ENV=production exec node /somepath/myapp/app.js >> /var/log/myapp.log 2>&1

Luego, copie el archivo de script (myapp.conf) en / etc / init y asegúrese de que esté marcado como ejecutable. Su aplicación puede ser administrada utilizando los siguientes comandos:

sudo start myapp sudo stop myapp sudo restart myapp


Tuve un problema similar y creo que usarlo para siempre ayudará a manejar el bloqueo y reinicia

Puedes instalarlo para siempre en todo el mundo: sudo nom install -g forever

Y ejecuta este comando:

nohup forever server.js &

Esto debería manejar todo el problema de cerrar la terminal, cerrar sesión ssh, bloqueo de nodo y reinicio.


node expamle.js & por ejemplo