![](/img/trans.png)
[英]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.