为什么我Waiting...Fatal error: watch ENOSPC
在运行监视任务时会收到?我该如何解决这个问题?
7 回答
经过一番研究,找到了解决办法。运行以下命令。
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
任何时候你需要跑去sudo something ...
修复一些东西,你应该停下来想想发生了什么。虽然这里接受的答案是完全有效的,但它正在治疗症状而不是问题。相当于购买更大的马鞍包来解决以下问题:错误,无法将更多垃圾装载到小马身上。小马已经装了这么多垃圾,小马累得昏倒了。
另一种选择(可能类似于从小马身上取出多余的垃圾并放入垃圾场)是运行:
npm dedupe
然后去祝贺自己让小马开心。
尝试手榴弹的答案后,您可以使用临时修复:
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-这个大工作区错误enospc
该解决方案与已接受的答案几乎相同(如果不相同),只是对遇到来自 vs-code 的问题后到达这里的任何人都有更多解释。
就我而言,我发现我有一个激进的 Vim 插件,只是重新启动它。