[英]how to attach a running node.js process and debug WITHOUT a GUI?
[英]Node.js: How to attach to a running process and to debug the server with a console?
我使用“永远”来运行我的应用程序。 我想附加到运行环境来检查我的应用程序。 那我能做什么?
从http://nodejs.org/api/debugger.html :
高级用法
可以通过使用 --debug 命令行标志启动 Node 或使用 SIGUSR1 向现有 Node 进程发送信号来启用和访问 V8 调试器。
找到您的node
进程的 PID,然后发送SIGUSR1
应该可以解决问题:
kill -s SIGUSR1 nodejs-pid
然后运行node-inspector
并浏览到它指示的 URL。 本教程中的更多内容。
从Node 6.3开始,node 有一个内置的调试器,可以通过执行以下操作来触发(甚至在生产应用程序中):
kill -USR1 <node-pid>
节点进程会吐出这样的东西:
Debugger listening on ws://127.0.0.1:9229/f3f6f226-7dbc-4009-95fa-d516ba132fbd
For help see https://nodejs.org/en/docs/inspector
http://host.domain:9229
上使用chrome://inspect
。如果您无法通过浏览器连接(例如,服务器位于受防火墙保护的生产集群中),您可以激活 REPL 以通过命令行进行检查:
node inspect -p <node-pid>
ssh -nNTL 9229:localhost:9229 <username>@<your_host> -i <keyfile>.pem
)和几秒钟后,您将在chrome://inspect
下找到您的脚本。 在此版本之前, node-inspector
是用于调试 Node 进程的单独工具。 但是,正如其自己的页面所记录的那样,它大多已被弃用,因为现在捆绑的调试器正在积极维护并提供更高级的功能。 有关此更改的更多信息,请参阅此线程。
对我来说,运行节点版本 6.9.10 我必须:
kill -USR1 <node-pid>
然后
node debug -p <node-pid>
对于此版本的节点, node inspect -p <node-pid>
命令失败。
如果您使用的 Windows 不支持 POSIX 信号,则可以从另一个cmd
使用此解决方法。
node -e "process._debugProcess(PID)"
launch.json
配置或通过单击滚轮创建新配置 { "type": "node", "request": "attach", "name": "Attach to 9229", "port": 9229 },
node -e "process._debugProcess(21392)"
现在一切都应该准备好了。
即使这是一个古老但尚未回答的问题,还有一种更简单的方法,即将参数传递给节点:
forever start -c 'node --debug-brk' main.js
如果您不想等待附加调试器,请将--debug-brk
替换为--debug
要检查 nodejs 并调试它,请使用此命令
forever -w -c 'node --inspect=IP:PORT' file.js
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.