如何知道Linux上Node子进程正在使用的所有资源、连接、套接字等



我动态生成一个节点脚本,然后通过节点派生一个子进程来执行它,并将输出传回父进程

在父级:

  //...build child.js
  var child  = require('child_process');
  childProcess = child.fork('child.js');
  childProcess.on('message', 
       function(dataFromChild) { 
         //process data 
   });

子进程

process.send(objectToSend,function() {
 //code to send objectToSend
 //process.exit(0);
}

实际的代码要广泛得多。我也使用socket.io和mysql。当我完成处理时,我想我正在关闭子进程中所有打开的数据库连接和套接字。但是,子进程不会退出。如果我在退出点执行process.exit(0),它确实退出了。我认为它一定是开放的,不允许它自然退出。我怎么知道它是什么?

我尝试了一个简单的子脚本,基本上是一个带有console.log语句的单行脚本,以测试它是否会在没有exit语句的情况下退出。确实如此。

您可以使用linux lsof程序列出子进程拥有的所有打开的文件描述符。在节点中,活动句柄npm包应该可以帮助您跟踪已分配的侦听器、超时等。

相关内容

  • 没有找到相关文章

最新更新