错误:EMFILE,连接过多
在安装NPM的时候,我遇到了这个问题:
npm http 304 https://registry.npmjs.org/grunt-contrib-uglify
npm http 304 https://registry.npmjs.org/grunt-contrib-qunit
npm ERR! TypeError: Bad argument
npm ERR! at Object.fs.close (fs.js:306:11)
npm ERR! at Object.fs.close (/usr/local/Cellar/node/0.8.21/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:92:17)
npm ERR! at null.<anonymous> (/usr/local/Cellar/node/0.8.21/lib/node_modules/npm/lib/utils/fetch.js:31:8)
npm ERR! at EventEmitter.emit (events.js:96:17)
npm ERR! at emit (fs.js:1500:14)
npm ERR! at WriteStream.flush (fs.js:1504:9)
npm ERR! at Object.oncomplete (fs.js:297:15)
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Darwin 12.2.0
npm ERR! command "/usr/local/Cellar/node/0.8.21/bin/node" "/usr/local/bin/npm" "install"
/usr/local/Cellar/node/0.8.21/lib/node_modules/npm/lib/utils/error-handler.js:247
log.error("cwd", process.cwd())
^
Error: EMFILE, too many open files
at process.errorHandler (/usr/local/Cellar/node/0.8.21/lib/node_modules/npm/lib/utils/error-handler.js:247:28)
at process.EventEmitter.emit (events.js:126:20)
我在使用osx系统。我试过运行 sudo ulimit -n 10480
,结果显示:
$ ulimit
unlimited
我现在使用的npm版本是:
{ http_parser: '1.0',
node: '0.8.21',
v8: '3.11.10.25',
ares: '1.7.5-DEV',
uv: '0.8',
zlib: '1.2.3',
openssl: '1.0.0f',
npm: '1.2.11',
shopper4: '0.1.0' }
有没有什么建议?非常感谢!
1 个回答
0
在OSX系统上,你应该使用 launchctl
。
要查看当前的限制,可以使用:
launchctl limit
如果你想改变最大文件数量,可以使用:
launchctl limit maxfiles 400000 unlimited
要永久更改这个设置,需要编辑 /etc/launchd.conf
文件。
limit maxfiles 400000 unlimited