我在Ubuntu机器上运行此错误,同时在Request模块中执行GET操作并写入MongoHQ存储。
我的错误是:
{ [Error: connect EMFILE]
stack: 'Error: connect EMFILE\n at exports._errnoException (util.js:682:11)\n at connect (net.js:813:19)\n at net.js:897:9\n at Object.asyncCallback [as callback] (dns.js:78:16)\n at Object.onlookup [as oncomplete] (dns.js:94:10)',
code: 'EMFILE',
errno: 'EMFILE',
syscall: 'connect' }
我见过这个解决方案:
How do I change the number of open files limit in Linux?
我通过修改我的ulimit值来遵循规定的解决方案,以便我的ulimit -a输出为:
4096
我还从此链接更改了我的limits.conf文件:
https://askubuntu.com/questions/162229/how-do-i-increase-the-open-files-limit-for-a-non-root-user
我添加了这些内容:
我仍然有同样的问题。
但是我确实有另一个ubuntu机箱,内存和存储运行较少(也是)在没有此问题的Amazon EC2实例上运行。我没有对这个盒子做任何改动,唯一的区别是它运行精确的12.04.2 LTS而我的问题机器运行的是精确的12.04.3 LTS。
非常感谢任何帮助。
答案 0 :(得分:0)
我相信你是一个正确的轨道。我还有一个EMFILE错误,最终解决了这个错误是将这些行添加到我的 /etc/security/limits.conf
* soft nofile 100000
* hard nofile 1000000
root soft nofile 100000
root hard nofile 1000000
然后我重新启动,我不再有问题。 '*'表示所有非root用户,因此无论用户运行此程序是什么,这基本上都是一个捕获。据我所知,ulimit直到用户重新登录后才会改变,因此您可能必须终止进程并注销,然后重新登录....这可能是为什么重启对我有用! / p>