Esta traducci贸n proporcionada por StrongLoop / IBM.

Este documento puede estar desfasado respecto a la documentaci贸n en ingl茅s. Para ver las 煤ltimas actualizaciones, consulte la documentaci贸n en ingl茅s.

Gestores de procesos para las aplicaciones Express

Cuando ejecuta aplicaciones Express en producci贸n, es muy 煤til utilizar un gestor de procesos para realizar las siguientes tareas:

Un gestor de procesos es una especie de servidor de aplicaciones: un 鈥渃ontenedor鈥 de aplicaciones que facilita el despliegue, proporciona una alta disponibilidad y permite gestionar la aplicaci贸n en el tiempo de ejecuci贸n.

Los gestores de procesos m谩s conocidos para Express y otras aplicaciones Node.js son los siguientes:

El uso de estas tres herramientas puede ser muy 煤til, aunque StrongLoop Process Manager es la 煤nica que proporciona una soluci贸n completa de despliegue y tiempo de ejecuci贸n que gestiona el ciclo de vida completo de la aplicaci贸n Node.js, con herramientas para cada paso antes y despu茅s de la producci贸n, en una interfaz unificada.

A continuaci贸n, se describe brevemente cada una de estas herramientas. Para ver una comparaci贸n detallada, consulte http://strong-pm.io/compare/.

StrongLoop Process Manager

StrongLoop Process Manager (StrongLoop PM) es un gestor de procesos de producci贸n para las aplicaciones Node.js. StrongLoop PM tiene incorporado un despliegue de equilibrio de carga, supervisi贸n y varios hosts, as铆 como una consola gr谩fica. Puede utilizar StrongLoop PM para las siguientes tareas:

Puede trabajar con StrongLoop PM utilizando una potente herramienta de interfaz de l铆nea de mandatos denominada slc o una herramienta gr谩fica denominada Arc. Arc es de c贸digo abierto, con soporte profesional proporcionado por StrongLoop.

Para obtener m谩s informaci贸n, consulte http://strong-pm.io/.

Documentaci贸n completa:

Instalaci贸n


$ [sudo] npm install -g strongloop

Uso b谩sico


$ cd my-app
$ slc start

Vea el estado del gestor de procesos y todas las aplicaciones desplegadas:


$ slc ctl
Service ID: 1
Service Name: my-app
Environment variables:
  No environment variables defined
Instances:
    Version  Agent version  Cluster size
     4.1.13      1.5.14           4
Processes:
        ID      PID   WID  Listening Ports  Tracking objects?  CPU profiling?
    1.1.57692  57692   0
    1.1.57693  57693   1     0.0.0.0:3001
    1.1.57694  57694   2     0.0.0.0:3001
    1.1.57695  57695   3     0.0.0.0:3001
    1.1.57696  57696   4     0.0.0.0:3001

Liste todas las aplicaciones (servicios) que se est谩n gestionando:


$ slc ctl ls
Id          Name         Scale
 1          my-app       1

Detenga una aplicaci贸n:


$ slc ctl stop my-app

Reinicie una aplicaci贸n:


$ slc ctl restart my-app

Tambi茅n puede realizar un 鈥渞einicio suave鈥, que da a los procesos de trabajador un periodo de gracia para cerrar las conexiones existentes y, a continuaci贸n, reinicia la aplicaci贸n actual:


$ slc ctl soft-restart my-app

Para eliminar una aplicaci贸n de la gesti贸n:


$ slc ctl remove my-app

PM2

PM2 es un gestor de procesos de producci贸n para las aplicaciones Node.js que tiene un equilibrador de carga incorporado. PM2 permite mantener siempre activas las aplicaciones y volver a cargarlas sin ning煤n tiempo de inactividad, a la vez que facilita tareas comunes de administrador del sistema. PM2 tambi茅n permite gestionar el registro de aplicaciones, la supervisi贸n y la agrupaci贸n en cl煤ster.

Para obtener m谩s informaci贸n, consulte https://github.com/Unitech/pm2.

Instalaci贸n


$ [sudo] npm install pm2 -g

Uso b谩sico

Cuando inicia una aplicaci贸n utilizando el mandato pm2, debe especificar la v铆a de acceso de la aplicaci贸n. No obstante, cuando detiene, reinicia o suprime una aplicaci贸n, s贸lo puede especificar el nombre o el ID de la aplicaci贸n.


$ pm2 start app.js
[PM2] restartProcessId process id 0
鈹屸攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
鈹 App name 鈹 id 鈹 mode 鈹 pid   鈹 status 鈹 restart 鈹 uptime 鈹 memory      鈹 watching 鈹
鈹溾攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹尖攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
鈹 my-app   鈹 0  鈹 fork 鈹 64029 鈹 online 鈹 1       鈹 0s     鈹 17.816 MB   鈹 disabled 鈹
鈹斺攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹粹攢鈹鈹鈹鈹鈹鈹鈹鈹鈹鈹
 Use the `pm2 show <id|name>` command to get more details about an app.

Cuando inicia una aplicaci贸n utilizando el mandato pm2, la aplicaci贸n se env铆a inmediatamente al segundo plano. Puede controlar la aplicaci贸n en segundo plano desde la l铆nea de mandatos utilizando varios mandatos pm2.

Cuando se inicia una aplicaci贸n utilizando el mandato pm2, se registra en la lista de procesos de PM2 con un ID. Por lo tanto, puede gestionar las aplicaciones con el mismo nombre de distintos directorios en el sistema utilizando su ID.

Tenga en cuenta que si se ejecuta m谩s de una aplicaci贸n con el mismo nombre, los mandatos pm2 se aplican en todas ellas. Por lo tanto, utilice ID en lugar de nombres para gestionar aplicaciones individuales.

Liste todos los procesos en ejecuci贸n:


$ pm2 list

Detenga una aplicaci贸n:


$ pm2 stop 0

Reinicie una aplicaci贸n:


$ pm2 restart 0

Para ver informaci贸n detallada sobre una aplicaci贸n:


$ pm2 show 0

Para eliminar una aplicaci贸n del registro de PM2:


$ pm2 delete 0

Forever

Forever es una herramienta de interfaz de l铆nea de mandatos simple que permite garantizar la ejecuci贸n continua (forever/siempre) de un determinado script. La sencilla interfaz de Forever hace que sea ideal para ejecutar los despliegues m谩s peque帽os de scripts y aplicaciones Node.js.

Para obtener m谩s informaci贸n, consulte https://github.com/foreverjs/forever.

Instalaci贸n


$ [sudo] npm install forever -g

Uso b谩sico

Para iniciar un script, utilice el mandato forever start y especifique la v铆a de acceso del script:


$ forever start script.js

Este mandato ejecutar谩 el script en modalidad daemon (en segundo plano).

Para ejecutar el script para que se adjunte al terminal, omita start:


$ forever script.js

Se recomienda registrar la salida de la herramienta Forever y el script utilizando las opciones de registro -l, -o y -e, como se muestra en este ejemplo:


$ forever start -l forever.log -o out.log -e err.log script.js

Para ver la lista de scripts que ha iniciado Forever:


$ forever list

Para detener un script iniciado por Forever, utilice el mandato forever stop y especifique el 铆ndice de procesos (como se lista con el mandato forever list).


$ forever stop 1

De manera alternativa, puede especificar la v铆a de acceso del archivo:


$ forever stop script.js

Para detener todos los scripts que ha iniciado Forever:


$ forever stopall

Forever tiene m谩s opciones y tambi茅n proporciona una API mediante programaci贸n.