【发布时间】:2013-05-20 20:49:27
【问题描述】:
为什么我在运行监视任务时得到Waiting...Fatal error: watch ENOSPC?
我该如何解决这个问题?
【问题讨论】:
-
对于查看此内容的任何人,这不是特定于
grunt,而是任何使用inotify 的程序。 unix.stackexchange.com/questions/13751/… 有很好的解释。
为什么我在运行监视任务时得到Waiting...Fatal error: watch ENOSPC?
我该如何解决这个问题?
【问题讨论】:
grunt,而是任何使用inotify 的程序。 unix.stackexchange.com/questions/13751/… 有很好的解释。
在做了一些研究后找到了解决方案。运行以下命令。
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
【讨论】:
fs.inotify.max_user_watches=524288 添加到 /etc/sysctl.d/99-sysctl.conf,然后执行 sysctl --system。这也将在重新启动后持续存在。更多详情:wiki.archlinux.org/index.php/Sysctl
npm dedupe 为我清除了它。 issue
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf 在文件 /etc/sysctl.conf 的末尾写入“fs.inotify.max_user_watches=524288”行" sudo sysctl -p 在运行时重新配置内核,加载文件 /etc/sysctl.conf 作为参数
任何时候你需要运行sudo something ... 来修复某些东西,你应该停下来想想发生了什么。虽然这里接受的答案是完全有效的,但它正在治疗症状而不是问题。相当于购买更大的马鞍包来解决以下问题:错误,无法将更多垃圾装载到小马身上。小马已经装了这么多垃圾,小马累得要晕倒了。
另一种选择(可能类似于从小马身上取出多余的垃圾并放入垃圾场)是运行:
npm dedupe
那就恭喜你让小马开心了。
【讨论】:
sudo,现在它对我有用。
fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p,但 +1 用于教我npm dedupe
尝试grenade's answer 后,您可以使用临时修复:
sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
这与kds's answer 的作用相同,但不会持久化更改。如果错误只是在系统正常运行一段时间后发生,这很有用。
【讨论】:
要找出谁在制作 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。只有在关闭 所有 崇高的窗口后,我才能运行我的节点脚本。
【讨论】:
我在客户端 PC 崩溃后遇到了这个错误,我在服务器上运行的 jest --watch 命令仍然存在,我尝试再次运行 jest --watch。
上述答案中描述的对/etc/sysctl.conf 的补充解决了这个问题,但通过ps aux | grep node 和kill 找到我的旧流程也很重要。
【讨论】:
就我而言,它与在我的 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-this-large-workspace-error-enospc
解决方案与接受的答案几乎相同(如果不相同),只是对遇到来自 vs-code 的问题后到达这里的任何人都有更多解释。
【讨论】:
就我而言,我发现我有一个针对 Vim 的激进插件,只是重新启动它。
【讨论】: