为什么?
像Dropbox、Git等同步文件的程序使用inotify来通知文件系统的更改。可以通过以下方式查看其限制:
cat /proc/sys/fs/inotify/max_user_watches
对我而言,它显示100000。 当此限制不足以监视目录中的所有文件时,它会抛出此错误。
增加inotify观察者数量(简短版):
如果您正在运行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
将其粘贴到终端并按Enter运行。
技术细节:
Listen在Linux上默认使用inotify来监视目录的变化。您可能会遇到系统限制,限制您可以监视的文件数量。例如,Ubuntu Lucid(64位)的inotify限制设置为8192。
您可以通过执行以下操作来获取当前的inotify文件监视限制:
cat /proc/sys/fs/inotify/max_user_watches
如果此限制不足以监视目录中的所有文件,则必须增加限制才能使“Listen”正常工作。
您可以使用以下命令临时设置新的限制:
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
如果 Listen 继续抱怨,您可能还需要注意 max_queued_events 和 max_user_instances 的值。
来源:https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers