我正在以下非常討厭的錯誤:快遞錯誤:EMFILE,打開的文件太多
Error: EMFILE, too many open files '/home/savagegames.net/views/index.jade'
at Object.openSync (fs.js:240:18)
at Object.readFileSync (fs.js:128:15)
at View.contents (/home/savagegames.net/node_modules/express/lib/view/view.js:121:13)
at Function.compile (/home/savagegames.net/node_modules/express/lib/view.js:68:45)
at ServerResponse._render (/home/savagegames.net/node_modules/express/lib/view.js:417:18)
at ServerResponse.<anonymous> (/home/savagegames.net/node_modules/express/lib/view.js:318:17)
at /home/savagegames.net/node_modules/express-mongoose/index.js:45:21
at resolve (/home/savagegames.net/node_modules/express-mongoose/index.js:75:12)
at ServerResponse.expressmongoose [as render] (/home/savagegames.net/node_modules/express-mongoose/index.js:37:12)
at /home/savagegames.net/controllers/index_controller.coffee:49:18
我相信這是快遞的問題;我該如何補救?謝謝。
通過與啓動應用程序相同的方式運行'ulimit -n',結果如何?也許這個限制太低了,需要提高。 (請聯繫您的管理員。)應用程序中可能存在錯誤,並且不會關閉不再需要的文件。檢查'/ proc/pid/fd /'目錄以查看該進程已打開的文件 - 這可能會幫助您發現問題。 – sarnold
ulimit -n是'1024'。我查看了我的'/ proc/pid/fd',並發現了一大堆'lrwx ------ 1 root root 64 Jun 29 03:49 276 - > socket:[619284773]'。這些從哪裏來? –
這些套接字可能是TCP/IP連接;檢查'netstat -anp | grep pid'來找出關於這些連接的更多細節。 (他們也可以是Unix域套接字;如果是這樣,'lsof'會更有用。) – sarnold