我正在使用 chokidar 来查看文件,我收到 EMFILE 错误,我知道这是因为我当前打开的文件描述符太多。
我正在使用套接字,因此 graceful-fs 无法解决问题。另外,暂时设置我的 ulimit 是暂时的。
有没有办法获取当前在代码中打开的文件描述符的数量?我想检查数量是否即将超过限制,并让进程在继续监视文件/目录之前等待。
最佳答案
获取当前打开的 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。
关于Node.js 获取打开文件描述符计数(开发),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151482/