tiempo tareas que programadas produccion procesos poner nodejs node gestor funcion ejecute detener configurar cierto cada node.js console

node.js - tareas - que es pm2



Node.js: ¿Cómo adjuntar a un proceso en ejecución y depurar el servidor con una consola? (6)

Yo uso "para siempre" para ejecutar mi aplicación. Quiero adjuntar al entorno de ejecución para inspeccionar mi aplicación. ¿Entonces Que puedo hacer?


A partir del Nodo 6.3 , el nodo tiene un depurador incorporado que se puede activar (incluso en una aplicación de producción) haciendo:

kill -USR1 <node-pid>

El proceso del nodo escupirá algo como esto:

Debugger listening on ws://127.0.0.1:9229/f3f6f226-7dbc-4009-95fa-d516ba132fbd For help see https://nodejs.org/en/docs/inspector

  • Si puede acceder al servidor desde un navegador, puede usar chrome://inspect en http://host.domain:9229 .
  • Si no puede conectarse a través de un navegador (es decir, el servidor está en un clúster de producción con firewall), puede activar un REPL para inspeccionar la línea de comandos:

    node inspect -p <node-pid>

Antes de esta versión, node-inspector era una herramienta separada para depurar los procesos de Node. Sin embargo, como se documenta en su propia página, está en gran parte en desuso, ya que el depurador ahora incluido se mantiene activamente y ofrece funciones más avanzadas. Para obtener más información sobre este cambio, consulte este hilo .


De http://nodejs.org/api/debugger.html :

Uso avanzado

Se puede habilitar y acceder al depurador V8 iniciando el nodo con el indicador de línea de comando --debug o señalizando un proceso de nodo existente con SIGUSR1.

Encuentre el PID de su proceso de node y luego enviar SIGUSR1 debería hacer el truco:

kill -s SIGUSR1 nodejs-pid

Luego ejecute node-inspector y busque la URL que indica. Más en este tutorial .


Incluso es una pregunta antigua que ya ha sido respondida, hay una forma más fácil, que es pasar los parámetros al nodo:

forever start -c ''node --debug-brk'' main.js

Si no desea esperar a que se adjunte el depurador, reemplace --debug-brk por --debug


Para mí, ejecutando el nodo versión 6.9.10 tuve que:

kill -USR1 <node-pid>

entonces

node debug -p <node-pid>

el comando de node inspect -p <node-pid> del node inspect -p <node-pid> falló para esta versión del nodo.


Puede agregar un REPL a su aplicación. Por ejemplo, si agrega un REPL para escuchar en el puerto local 5001, inicie su aplicación como de costumbre e inicie sesión con telnet: telnet localhost 5001 . Eso lo llevará a un aviso donde puede interactuar con su aplicación directamente.

Alternativamente, si necesita que su aplicación se "detenga" cuando alcanza un cierto estado, necesita agregar "depurador"; líneas a áreas de su código donde desea esos puntos de interrupción, luego inicie la aplicación en modo de http://nodejs.org/api/debugger.html .

Espero que ayude.


Para inspeccionar los nodejs y depurarlo, use este comando

forever -w -c ''node --inspect=IP:PORT'' file.js

  • -c si para un comando personalizado
  • use -w para volver a cargar si el archivo se vuelve a guardar
  • Puede pasar ip y puerto para inspección externa
  • puerto personalizado es 9229