错误:生成EMFILE节点js

时间:2016-11-21 05:43:05

标签: node.js child-process

我收到此错误。当一个人登录到应用程序时,使用utilityWrapper将日志输入到文件中。当应用程序中发生某些活动时,将读取/写入此文件。然后突然过了一段时间

'throw errnoException(process._errno, 'spawn');
Error: spawn EMFILE
    at errnoException (child_process.js:988:11)
    at ChildProcess.spawn (child_process.js:935:11)
    at Object.exports.spawn (child_process.js:723:9)
    at Object.Logger (/web/utilityWrapper.js:21:17)
    at process.env.NODE_TLS_REJECT_UNAUTHORIZED (/web/server.js:141:17)
    at process.EventEmitter.emit (events.js:95:17)
    at process._fatalException (node.js:272:26)

出现此错误。 请帮助我。

1 个答案:

答案 0 :(得分:1)

这是因各种原因而发生的。代码有许多console.logs,它在运行服务器的命令提示符上打印了很多东西。在写入文件时,它使用的是文件描述符(fd)。文件描述符的ulimit是1024。 使用命令

lsof - -i -n  -P | grep nodejs

我能够捕获有关每个fd的信息。 当用户进入应用程序时,Fd计数用于增加.ldap套接字和mysql数据库连接也消耗了大量的fd。 所以当你遇到这种错误时,请记住这些要点。