Node.js获取打开文件描述符计数(开发)

时间:2015-07-01 02:07:50

标签: node.js

我使用chokidar来观看文件,我收到了EMFILE错误,我知道发生这种情况是因为我目前打开的文件描述符太多了。

我使用socket,所以graceful-fs无法解决问题。此外,暂时设置我的ulimit是暂时的。

有没有办法让代码中当前打开的文件描述符数量?我想检查数字是否即将超过限制,并在继续观察文件/目录之前让进程等待。

1 个答案:

答案 0 :(得分:5)

获取当前打开fd计数的简单方法(假设您有/proc fs)是检查/proc/self/fd中的条目数:

var readdir = require('fs').readdir;

readdir('/proc/self/fd', function(err, list) {
  if (err) throw err;
  console.log(list.length);
});

请记住,打开目录进行阅读将导致另一个打开的fd。

如果要检查外部流程中打开的文件描述符的数量,只需将self替换为您要检查的pid。