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

cur*_*ser 57 ruby ubuntu ruby-on-rails

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

致命错误:侦听错误:无法监视目录的更改. 有关如何解决此问题的信息,请访问 https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers.

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

提前致谢!!!

May*_*hah 92

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

默认情况下,Listen在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
Run Code Online (Sandbox Code Playgroud)

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

echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Run Code Online (Sandbox Code Playgroud)


Pas*_*vel 20

只是尝试从您的控制台执行此操作:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

希望这对你有用.

参考文献:点击这里


小智 6

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

 kill -9 $(lsof -i tcp:3000 -t)
Run Code Online (Sandbox Code Playgroud)


Tra*_* Le 6

就我而言,我只需要关闭终端,然后重新启动它。当我尝试运行rails c命令时它有效:)

  • 经典的“重启并重试”方法。 (2认同)