如何在 OSX 上配置 fsnotify 的队列大小/监视限制?

如何在 OSX 上配置 fsnotify 的队列大小/监视限制?

笔记:这可能是一个 StackOverflow 问题,因为它涉及只能通过 OSX 上的内部 API 访问的内容,但我在这里发布它,因为它似乎更多地是关于使用已经可用的工具,而不是为其编程。

问题: 我一直在使用同步(使用 fsnotify 后端,而不是 inotify)来监视 OSX 上的文件系统事件。我收到了很多 OVERFLOW 事件,因为我正在向它传递大量高易失性文件。

如何在 OSX 10.8 Mountain Lion (或任何其他版本) 上配置 fsnotify 的最大内部队列大小?在 inotify/Linux 上,我会使用/proc/sys/fs/inotify/max_user_watches,但我不知道如何使用 fsnotify 以及在 OSX 上进行配置。

如果真的必须的话,我可以用一些内置的秘密重新编译内核来配置更高的数字,但如果可能的话,我宁愿避免这样做。

答案1

对于仍然想这样做的人,我在最新的 Mojave 中的终端中运行了这个:

sudo sysctl -w kern.maxfiles=524288

此更改与 Webpack 无法捕获更改有关。我最初的限制是 49000 左右。提高设置后,观察程序会在文件更改时再次触发。

相关内容