从外部获取正在运行的 Node js 的当前堆栈跟踪

Dir*_*irk 6 node.js

我的生产服务器上有一个节点应用程序会定期达到 100%。我希望能够向节点进程发送信号,该信号将为我提供堆栈跟踪,以便我可以找到代码中的问题所在。有什么简单的方法可以做到这一点吗?

我的服务器是 ubuntu 14.04.2,我正在运行节点 0.12.2

Bri*_*ian -1

有一个名为的函数console.trace()可以帮助您完成您想要做的事情。

如何在 Node.js 中打印堆栈跟踪?

使用以下代码在进程上设置事件处理程序以监视 SIG1:

process.on('SIGUSR1', function(){   console.trace   });
Run Code Online (Sandbox Code Playgroud)

现在,从终端发出以下命令向节点发送 SIGUSR1 信号:

killall -10 node
Run Code Online (Sandbox Code Playgroud)

我不确定堆栈跟踪是否会回溯到足以对您有用的位置,它可能只显示 SIG1USR 上的回调,不确定。但我认为这会让你们更接近。