gpt4 book ai didi

ruby-on-rails - 是什么导致 Rails 应用程序中的 Listen 错误

转载 作者:行者123 更新时间:2023-12-04 16:06:30 26 4
gpt4 key购买 nike

所以我在 schema.rb 文件中做了一些更改,据我所知,这就是导致此错误的原因。另外我认为我不正确地删除了一些迁移文件。

FATAL: Listen error: unable to monitor directories for changes.

它出现在我在终端上使用的每个 rails 命令上

我到处都认为这是解决方案

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

但我不明白它的作用。有人可以解释这里发生了什么。至于解决方案在做什么以及实际导致此错误的原因。

最佳答案

阅读关于inotify:inotify man page

inotify API 提供了一种监视文件系统事件的机制。 Inotify 可用于监视单个文件或监视目录。监视目录时,inotify 将返回目录本身和目录内文件的事件。

系统限制您可以监控的文件数量的情况并不少见。

您可以通过执行以下命令获取当前的 inotify 文件监视限制:

$ cat/proc/sys/fs/inotify/max_user_watches

/proc/sys/fs/inotify/max_user_watches

This specifies an upper limit on the number of watches that can becreated per real user ID.

当此限制不足以监控目录内的所有文件时,必须增加限制。

您可以设置一个临时的新限制:

$ sudo sysctl fs.inotify.max_user_watches=524288
$ sudo sysctl -p

如果您想永久限制,请使用:

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

gem listen 已达到此限制,因此您需要增加它...

Listen gem wiki

关于ruby-on-rails - 是什么导致 Rails 应用程序中的 Listen 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48527721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com