4
我试图在我的节点作业中使用ChildProcess.exec在async.forEach循环内运行一个命令。这里是代码Node.js spawn EMFILE
async.forEach(docPaths, function(docPath, callback) {
var run = [];
// some command using docPath variable here..
run.push(command);
debugger;
exec(run.join(' '), function(error, stdout, stderr){
callback();
});
}, callback);
以下是错误
"stack":"Error: spawn EMFILE\
at errnoException (child_process.js:478:11)\
at ChildProcess.spawn (child_process.js:445:11)\
at child_process.js:343:9\
at Object.execFile (child_process.js:253:15)\
at child_process.js:220:18\
快速谷歌显示我需要设置的ulimit值,以增加文件描述符的数量可以是开放的。有些东西一样 “的ulimit -n 10000”。(从下面链接)
https://groups.google.com/forum/#!topic/nodejs/jeec5pAqhps
我在哪里可以增加这个..?还是有其他解决方案来规避这个问题?
感谢您的帮助..非常感谢!
据我所知,文件描述符ulimit被设置为纯粹为了追踪经典C++应用程序中的FD泄漏。因此,将节点应用设置为无限制应该是安全的,因为无论如何它在异步世界中都没有多大意义。 – alex
@alex,它不是**安全**将ulimit设置为无限制,请参阅http://www.linuxhowtos.org/Tips%20and%20Tricks/ulimit.htm以查看后果。 – Sriharsha
我已尝试每个限制和每个系列都要通过错误。两者中的任何一个对我都很好。虽然每个系列不会同时处理,但它解决了我遇到的问题。非常感谢 – nodeuser