为什么在运行监视任务时会收到Waiting...Fatal error: watch ENOSPC
?
我该如何解决这个问题?
答案 0 :(得分:1319)
做了一些研究后发现了解决方案。运行以下命令。
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
答案 1 :(得分:177)
任何时候你需要运行sudo something ...
来修复某些东西,你应该暂停思考发生了什么。虽然这里接受的答案是完全有效的,但它正在治疗症状而不是问题。 Sorta相当于购买更大的马鞍袋来解决问题:错误,无法将更多的垃圾装到小马上。小马已经装了很多垃圾,那小马正疲惫地晕倒。
另一种选择(可能与从小马中取出多余的垃圾并放入转储中)可以运行:
npm dedupe
然后祝贺自己让小马高兴。
答案 2 :(得分:30)
尝试grenade's answer后,您可以使用临时修复:
sudo bash -c 'echo 524288 > /proc/sys/fs/inotify/max_user_watches'
这与kds's answer完全相同,但没有持续更改。如果在系统正常运行一段时间后发生错误,这将非常有用。
答案 3 :(得分:7)
要了解谁使inotify 实例,请尝试此命令(source):
Nothing
我看起来像这样:
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
,我能够将流程2857标识为ps -p 2857
。只有在关闭所有 sublime窗口后,我才能运行我的节点脚本。
答案 4 :(得分:3)
我的客户端PC崩溃后遇到此错误,我在服务器上运行的jest --watch
命令仍然存在,我尝试再次运行jest --watch
。
上述答案中描述的/etc/sysctl.conf
添加解决了此问题,但通过ps aux | grep node
和kill
查找旧流程也非常重要。
答案 5 :(得分:2)
在linux中,您可以使用以下命令修复此问题:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
答案 6 :(得分:0)
就我而言,这与Linux机器上运行的vs代码有关。我忽略了有关文件监视程序bla bla的警告。该解决方案位于Linux 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 docs页面上
解决方案与接受的答案几乎相同(如果不相同),只是对从vs代码遇到问题后到达这里的任何人提供了更多的解释。
答案 7 :(得分:0)
就我而言,我发现我有一个针对Vim的激进插件,只需重新启动它即可。