为什么我得到等待…致命错误:当我运行观察任务时观察ENOSPC ? 我该如何解决这个问题?


当前回答

在尝试手榴弹的答案后,你可以使用一个临时修复:

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

这与kds的答案相同,但是没有持久化更改。如果错误在系统运行一段时间后才发生,这是很有用的。

其他回答

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

在上面的回答中描述的对/etc/sysctl.conf的补充解决了这个问题,但是通过ps aux | grep节点找到我的旧进程并杀死它也很重要。

在尝试手榴弹的答案后,你可以使用一个临时修复:

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

这与kds的答案相同,但是没有持久化更改。如果错误在系统运行一段时间后才发生,这是很有用的。

在我的例子中,它与运行在我的Linux机器上的vs-code有关。我忽略了弹出的关于文件监视之类的警告。解决方案在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插件,只需重新启动它。

要找出谁在创建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。只有在关闭所有崇高的窗口后,我才能运行我的节点脚本。