531

为什么我Waiting...Fatal error: watch ENOSPC在运行监视任务时会收到?我该如何解决这个问题?

4

7 回答 7

1372

经过一番研究,找到了解决办法。运行以下命令。

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

对于 Arch Linux,将此行添加到 /etc/sysctl.d/99-sysctl.conf:

fs.inotify.max_user_watches=524288
于 2013-07-02T23:49:54.673 回答
190

任何时候你需要跑去sudo something ...修复一些东西,你应该停下来想想发生了什么。虽然这里接受的答案是完全有效的,但它正在治疗症状而不是问题。相当于购买更大的马鞍包来解决以下问题:错误,无法将更多垃圾装载到小马身上。小马已经装了这么多垃圾,小马累得昏倒了。

另一种选择(可能类似于从小马身上取出多余的垃圾并放入垃圾场)是运行:

npm dedupe

然后去祝贺自己让小马开心。

于 2015-08-10T18:19:11.937 回答
38

尝试手榴弹的答案后,您可以使用临时修复:

sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'

这与kds's answer的作用相同,但不会保留更改。如果错误只是在系统正常运行一段时间后发生,这很有用。

于 2017-01-09T14:41:34.847 回答
8

要找出谁在制作 inotify实例,请尝试以下命令(source):

for foo in /proc/*/fd/*; do readlink -f $foo; done | grep inotify | sort | uniq -c | sort -nr

我的看起来像这样:

 25 /proc/2857/fd/anon_inode:inotify
  9 /proc/2880/fd/anon_inode:inotify
  4 /proc/1375/fd/anon_inode:inotify
  3 /proc/1851/fd/anon_inode:inotify
  2 /proc/2611/fd/anon_inode:inotify
  2 /proc/2414/fd/anon_inode:inotify
  1 /proc/2992/fd/anon_inode:inotify

使用ps -p 2857,我能够将进程 2857 识别为sublime_text. 只有在关闭所有崇高的窗口后,我才能运行我的节点脚本。

于 2017-10-09T15:29:01.577 回答
3

在我的客户端 PC 崩溃后,我遇到了这个错误,我jest --watch在服务器上运行的命令仍然存在,我试图jest --watch再次运行。

/etc/sysctl.conf上述答案中描述的补充解决了这个问题,但通过它找到我的旧流程ps aux | grep node也很重要kill

于 2017-04-18T16:15:32.410 回答
0

就我而言,它与在我的 Linux 机器上运行的 vs-code 有关。我忽略了一个关于文件观察者bla bla弹出的警告。解决方案位于 linux 的 vs-code 文档页面https://code.visualstudio.com/docs/setup/linux#_visual-studio-code-is-unable-to-watch-for-file-changes-in-这个大工作区错误enospc

该解决方案与已接受的答案几乎相同(如果不相同),只是对遇到来自 vs-code 的问题后到达这里的任何人都有更多解释。

于 2019-06-16T07:29:35.940 回答
0

就我而言,我发现我有一个激进的 Vim 插件,只是重新启动它。

于 2020-04-28T08:48:25.757 回答