当前位置: 首页>>技术问答>>正文


侦听错误:无法监视目录以进行更改

, ,

问题描述

我在Ubuntu服务器上运行我的rails应用程序时收到以下错误

FATAL: Listen error: unable to monitor directories for changes. Visit https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers for info on how to fix this.

我已经按照上面的GitHub页面,但我无法写入8192中设置的max_user_watches,我想将其设置为524288.在cat /proc/sys/fs/inotify/max_user_watches中,文件只处于读取模式。我试图授予写入权限,但我是即使使用root访问权限也会获得权限被拒绝

提前致谢!!!

最佳解决方法

1000太小了,请按照维基页面中的说明尝试使用524288:https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

Listen uses inotify by default on Linux to monitor directories for changes. It’s not uncommon to encounter a system limit on the number of files you can monitor. For example, Ubuntu Lucid’s (64bit) inotify limit is set to 8192.

If you are running Debian, RedHat, or another similar Linux distribution, run the following in a terminal:

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

If you are running ArchLinux, run the following command instead

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

希望这对你有用。

参考文献:click here

第三种解决方法

对于可能遇到此问题的其他人。我有一个VM断开连接,导致之前的rails服务器运行。在下面运行解决了问题,而无需增加观察者的数量。

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

第四种方法

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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7049.html,未经允许,请勿转载。