修复 macOS Too Many Open Files 错误 —— 使用 RcloneView 解决
通过提高系统文件描述符限制,解决 RcloneView 在 macOS 上出现的“too many open files”错误 —— 这是针对挂载和大规模同步操作的官方推荐修复方案。
macOS 对一个进程可以使用的文件描述符(打开文件)数量设有默认限制 —— 根据 macOS 版本不同,通常在 256 到 1024 之间。当 RcloneView 挂载云端驱动器或运行涉及大量并发文件操作的大规模同步时,这一限制可能会被耗尽,从而导致 too many open files 之类的错误或意外的挂载失败。这是一个已被记录在案的 macOS 限制,需要进行系统级配置更改才能解决。

在一个地方管理和同步所有云端
RcloneView 是 rclone 的跨平台 GUI。通过清爽的可视化界面比较文件夹、传输或同步文件,并自动化多云工作流。
- 一键作业:复制 · 同步 · 比较
- 调度器与历史记录,实现可靠的自动化
- 支持 Google Drive、OneDrive、Dropbox、S3、WebDAV、SFTP 等
核心功能免费。Plus 提供自动化功能。
为什么会发生这种情况
当你使用 RcloneView 将云存储挂载为虚拟驱动器时,rclone 进程会为缓存的文件和活动的目录列表维护打开的文件句柄。对于文件数量庞大的远程 —— 例如拥有 5 万份文档的 Google Drive,或者拥有数万个对象的 S3 存储桶 —— 在高强度操作期间,并发句柄数量可能会超过 macOS 保守的默认值。
为保证挂载操作顺畅运行,建议的文件句柄限制为 524,288(软限制和硬限制均设置为该值)。这是 RcloneView 在 macOS 上文档中记录的数值。
创建 LaunchDaemon 配置
要在 macOS 上永久提高文件描述符限制,需要创建一个 LaunchDaemon plist 文件,在系统启动时设置该限制。打开终端并执行以下步骤:
1. 创建 plist 文件:
sudo nano /Library/LaunchDaemons/limit.maxfiles.plist
2. 粘贴以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>limit.maxfiles</string>
<key>ProgramArguments</key>
<array>
<string>launchctl</string>
<string>limit</string>
<string>maxfiles</string>
<string>524288</string>
<string>524288</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>ServiceIPC</key>
<false/>
</dict>
</plist>
3. 设置正确的权限并加载:
sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
sudo chmod 644 /Library/LaunchDaemons/limit.maxfiles.plist
创建文件后,重启你的 Mac 以使新的限制生效。必须重启 —— 仅加载守护进程而不重启,可能无法在系统范围内应用该限制。
验证限制是否已生效
重启后,打开终端确认新的限制已生效:
launchctl limit maxfiles
输出应显示软限制和硬限制均为 524288。如果显示的数值较低,说明 plist 文件可能存在格式错误 —— 请重新检查是否有拼写错误或不可见字符。
macOS 上的其他问题:空文件夹
如果你的桌面、文稿或下载文件夹在 macOS Catalina 及更高版本的 RcloneView 中显示为空,原因有所不同:这是因为 macOS 的隐私权限尚未授予 RcloneView。前往 系统设置 > 隐私与安全性 > 文件与文件夹,在列表中找到 RcloneView,并启用访问权限。你也可以将 RcloneView 添加到完全磁盘访问权限中以获得更广泛的权限。更改权限后,请重新启动 RcloneView。
快速上手
- 从 rcloneview.com 下载 RcloneView。
- 创建
/Library/LaunchDaemons/limit.maxfiles.plist,将软限制和硬限制均设置为 524288。 - 设置正确的文件所有者和权限,然后重启你的 Mac。
- 重启后使用
launchctl limit maxfiles验证限制是否生效。
提高文件描述符限制是一次性的系统更改,可以为今后 RcloneView 中所有的挂载和同步操作解决打开文件错误的问题。
相关指南: