我在一台服务器上运行三个 node.js 应用程序,都使用 Foreman 通过 always.js 启动应用程序。
在零负载下,我的一个应用程序始终抛出错误Error: watch EMFILE
并重新启动。尽管不断抛出该错误,但该应用程序仍然有效......我试图找到有关此错误的更多信息,但那里没有很多信息(“打开的文件太多”或“增加 ulimit”。)
我的问题是:为什么这会发生在空闲的Web 应用程序上 - 为什么只有三分之一?它什么也没做... always.js 有问题吗?(不过,这台机器上始终运行着另外两个节点应用程序......)只是寻找一些关于导致此错误的原因、是否严重以及如何解决的信息。
谢谢!
仅供参考,这是控制台的相关摘录:
01:17:07 web.1 | app listening on http://0.0.0.0:5000
01:17:07 web.1 | NODE_ENV = development
01:17:07 web.1 | opened connection to database!
01:17:07 web.1 | [always] Error: watch EMFILE
01:17:07 web.1 | [always] Error: watch EMFILE
01:17:07 web.1 | at errnoException (fs.js:636:11)
01:17:07 web.1 | at FSWatcher.start (fs.js:663:11)
01:17:07 web.1 | at Object.watch (fs.js:691:11)
01:17:07 web.1 | at Object.oncomplete (/home/jesse/local/nodev0.6.14/lib/node_modules/always/lib/monitor.js:62:36)
01:17:07 web.1 | [always] Restarting app.js with Node