问题描述
我在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
命令时有效:)