Node.js Grunt watch错误-等待…致命错误:watch PC
为什么在运行watch任务时会出现等待的Node.js Grunt watch错误-等待…致命错误:watch PC,node.js,gruntjs,Node.js,Gruntjs,为什么在运行watch任务时会出现等待的…致命错误:watch ENOSPC? 如何解决这个问题?在做了一些研究后找到了解决方案。运行下面的命令 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=52
…致命错误:watch ENOSPC
?
如何解决这个问题?在做了一些研究后找到了解决方案。运行下面的命令
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'
这与执行相同的操作,但不保留更改。如果在系统正常运行一段时间后才发生错误,这将非常有用。我在客户端PC崩溃后遇到此错误,我在服务器上运行的
jest--watch
命令持续存在,我试图再次运行jest--watch
上述答案中描述的对
/etc/sysctl.conf
的添加解决了这个问题,但是通过ps aux|grep node
和kill
找到我的旧流程也很重要。要找出谁在创建inotify实例,请尝试以下命令():
我的是这样的:
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-p2857
,我能够将流程2857识别为sublime_text
。只有在关闭所有sublime窗口之后,我才能运行我的节点脚本。在我的例子中,它与Linux机器上运行的vs代码有关。我忽略了一个关于文件监视程序的警告。解决方案位于linux的vs代码文档页面上
解决方案与公认的答案几乎相同(如果不相同的话),只是对那些在遇到vs代码问题后来到这里的人有更多的解释。在我的例子中,我发现我有一个针对Vim的攻击性插件,只是重新启动了它。好吧,它似乎解决了我的问题。。。但是怎么做呢?为什么?你是否有任何资料可以解释正在发生(或正在发生)的事情。或者你可以自己做吗?无论如何,谢谢…系统对用户可以查看的文件数量有限制。如果使用Dropbox等其他程序运行Grunt,手表很快就会用完。此命令增加用户可以拥有的最大监视数量。对于Arch Linux,将
fs.inotify.max_user_watches=524288
添加到/etc/sysctl.d/99 sysctl.conf
,然后执行sysctl--system
。这也将在重新启动期间持续存在。有关详细信息:npm重复数据消除
为我清除了它。说明: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作为参数谢谢你让小马高兴。它到底是做什么的?它肯定解决了我的问题。感谢@grindate'npm dedupe'命令遍历您的npm模块树,并尽可能地将树中的每个包向上移动。结果是一棵扁平的树。即使包没有复制,它也会移动包。您可以阅读更多关于本例中不同版本模块发生的情况,当时没有帮助,我尝试了sudo
,现在它对我有效。在本例中,我的问题似乎是安装了Dropbox,它似乎使用了很多手表。因此,我不得不使用:fs.inotify.max_user_watches=524288 | sudo tee-a/etc/sysctl.conf&&sudo sysctl-p
作为公认的答案,但是+1用于教我npm重复数据消除
对于任何查看此内容的人来说,这并不是特定于grunt
,而是任何在下面使用的程序。这里有一个很好的解释。这应该是公认的答案,因为问题自然是由当前正在运行的内容引起的,而不是由错误的配置引起的(请参阅“小马”示例)。我对vscode也有同样的解释,但我认为它也与文件监视有关
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