Node.JS:看看为什么进程仍在运行的工具?

有没有办法看到什么超时,间隔或asynchronous操作(或无限循环)仍在运行,并阻止我的过程结束?

到目前为止,我已经能够find这个工具,但是这样的工具非常方便,特别是Node.JS项目开始变得更大。

我正在考虑Java的kill -3打印堆栈跟踪到stderr。 您可以为任何进程,任何时间,debugging或否。 我想要一个等效的Node.JS. (我知道节点是单线程asynchronous,所以它会输出不同)

发布了一个function请求https://github.com/joyent/node/issues/1025

模块为什么是节点运行正是你需要的东西。

  var log = require('why-is-node-running') setTimeout(function () { log() // logs out active handles that are keeping node running }, 100) 

输出结果如下所示:

 There are 4 known handle(s) keeping the process running and 0 unknown Known handles: # Timer /Users/maf/dev/node_modules/why-is-node-running/example.js:6 - setInterval(function () {}, 1000) /Users/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer() # TCP /Users/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0) /Users/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer() # TCP /Users/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0) /Users/maf/dev/node_modules/why-is-node-running/example.js:11 - createServer() # Timer /Users/maf/dev/node_modules/why-is-node-running/example.js:13 - setTimeout(function () {