侦听错误: 无法监视目录的更改

我在 Ubuntu 服务器上运行 Rails 应用程序时出现了以下错误

监听错误: 无法监视目录的更改。请访问 Https://github.com/guard/listen/wiki/increasing-the-amount-of-inotify-watchers 如何解决这个问题的信息。

我已经关注了上面的 GitHub 页面,但是我无法写入设置在8192的 max _ user _ watch,我想把它设置为524288。 在 cat /proc/sys/fs/inotify/max_user_watches中,文件处于只读模式。我试图授予写权限,但是即使使用 root 访问,我也得到了拒绝权限的错误。

预先感谢! ! !

53864 次浏览

1000实在是太小了,试试524288,就像 wiki 页面上解释的那样: < a href = “ https://github.com/Guard/listen/wiki/ 增加-the-amount-of-inotify-watchers”rel = “ norefrer”> https://github.com/guard/listen/blob/master/readme.md#increasing-the-amount-of-inotify-watchers

监听在 Linux 上默认使用 inotify 监视 更改。遇到系统对数量的限制并不罕见 例如,Ubuntu Lucid 的(64位) inotify 上限设定为8192。

还有

如果您正在运行 Debian、 RedHat 或其他类似的 Linux 分发,在终端中运行以下命令:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

如果正在运行 ArchLinux,请改为运行以下命令

echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system

试着从控制台执行这个命令

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

希望这对你有用。

参考文献: 点击这里

对于其他可能有这个问题的人。我有一个虚拟机断开,让以前的轨道服务器运行。下面的运行解决了这个问题,而不需要增加观察者的数量。

 kill -9 $(lsof -i tcp:3000 -t)

在我的情况下,我只需要关闭终端,然后重新启动它。它在我尝试运行 rails c命令时工作:)

这个错误发生在我身上,因为我当前正在运行许多我不知道的 Ruby 进程。只要杀了他们,一切都会好起来的

我在开发过程中运行 rake时遇到了这个问题(即使使用 rake -h) ,而且来自 https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers的解决方案不起作用,也不能关闭正在运行的 Ruby 进程,关闭终端,甚至重新启动计算机。

为了避免这个错误,我做了一个新的和干净的克隆我的项目,然后 rake是工作(也许 git clean -fdx可以工作,但我没有尝试它)。

我运行的是 rake 版本13.0.3 Rails 6.1.1 Ruby 2.7.2 p137。

加上@mayur-shah 的回答,

在关闭服务器和控制台之后,它对我起作用了。

删除 Gemfile.lock 并在项目目录终端中运行‘ bundle’对我来说很有用。