guin
V2EX  ›  Apple

mac 电脑各种 Open and Save Panel Servic 进程卡死

  •  
  •   guin · Nov 2, 2024 · 1475 views
    This topic created in 562 days ago, the information mentioned may be changed or developed.
    1. 只要登录微信,5 秒后就突然开始,微信进程和 Open and Save Panel Service (微信)提示未响应
    2. idea 等开发工具只要 ctrl+o 打开文件夹,就卡死也是抱错进程 Open and Save Panel Service 无响应

    找了网上的很多办法,删除 icoud 账户、更新系统等都用了,之前是 14.4 更新到 14.6 了后,好了几天,今天突然又这样了,求各位大神帮帮忙,到底是怎么回事

    5 replies    2026-05-15 22:22:27 +08:00
    haierspi
        1
    haierspi  
       Nov 2, 2024
    打开进程看看哪个占用率高。。另外 mac 是啥型号啊?还有 idea 是盗版?还是那种淘宝激活码那种。。
    guin
        2
    guin  
    OP
       Nov 2, 2024
    不光是 idea 还有从 app 商店下的 pixel 设计工具,也是到处图片就卡死,也是进程 Open and Save Panel Servic (对应的 app 名字)无响应
    guin
        3
    guin  
    OP
       Nov 2, 2024
    @haierspi m1 pro
    haierspi
        4
    haierspi  
       Nov 3, 2024
    来 升级 15 试试 哈哈 不过我不太怎么用图形相关的设计软件.. 最多就是 goland 用用.. 并没有出现你说的问题..
    帮你找了下...
    https://discussions.apple.com/thread/255476120?sortBy=rank

    System Settings->Apple ID->iCloud->iCould Drive, click to disable it.
    尝试下关闭 软件 对应的 icloud 云盘功能. 或者干脆禁止掉 iCloud 云盘功能...
    话说 感觉有很大可能是你 连接到 iCloud 的网络不是很好...

    可以尝试梯子... 如果没有 就用 更换国区 appleid 使用 国内的 云上贵州的 icloud
    xiaoqi6pi112
        5
    xiaoqi6pi112  
       3 days ago
    ---
    name: 修复 iCloud 导致 Open/Save Panel 卡死
    description: macOS 上 Open and Save Panel Service 因 iCloud (fileproviderd/bird) 死锁导致未响应的根治方案
    type: reference
    originSessionId: 172c3429-1740-4648-aa20-5888251efa6d
    ---
    # 症状

    - 任意 App 按 Cmd+O / Cmd+S 调出"打开/保存"面板时卡死、未响应
    - 活动监视器里 `Open and Save Panel Service (XX)` 显示"未响应"
    - 系统设置 → Apple 账户 也可能打不开(同样依赖 fileproviderd )
    - `brctl status`、`fileproviderctl dump`、`find ~/Library/Mobile Documents` 等命令本身会卡死

    # 根本原因

    Open/Save Panel 调用链:
    `App → openAndSavePanelService → fileproviderd → bird (iCloud) / 其他 Provider → cloudd → 网络`

    任何一环卡住整条链死锁。这次的元凶是用户目录下的 iCloud 状态文件损坏( SQLite 索引坏了),导致 fileproviderd 持续死锁。

    ## 为什么"移走文件"能根治(核心原理)

    死锁链路:
    ```
    Cmd+O → openAndSavePanelService → fileproviderd
    → 读 FileProvider/CloudDocs 的 SQLite 状态库
    → SQLite 文件损坏,查询永远不返回
    → fileproviderd 内部线程死锁 → 整条调用链卡死
    ```

    - **杀进程没用**:fileproviderd 重启后还是去读同一个坏文件,立刻又卡
    - **重启整机没用**:坏文件还在磁盘上,开机就读
    - **禁用扩展没用**:坏的是 fileproviderd 自己的状态库,不是扩展
    - **安全模式没用**:安全模式不清用户域文件

    把坏文件移走 → fileproviderd 重启后发现"没有状态文件" → 从零创建一个新的 → 从云端拉权威数据填充 → 一切正常。

    ## 四个关键文件的作用

    | 文件/目录 | 作用 | 为什么是它坏 |
    |---|---|---|
    | `~/Library/Application Support/CloudDocs` | iCloud Drive 的**本地 SQLite 索引**,记录每个文件的同步状态、版本号、冲突信息 | 最大嫌疑。SQLite 文件断电、强杀进程、磁盘满都易损坏 |
    | `~/Library/Application Support/FileProvider` | File Provider 框架的**用户级状态**,记录每个 Provider ( iCloud/OneDrive 等)的注册和同步状态 | 也是 SQLite ,同样易损 |
    | `~/Library/Caches/CloudKit` | CloudKit 框架( iCloud 底层协议)的本地缓存 | 缓存损坏会让 cloudd 一直在等不存在的数据 |
    | `~/Library/Preferences/MobileMeAccounts.plist` | iCloud 账户在本机的配置 | 顺手清掉,避免账户层面的脏状态 |

    ## 为什么是"移走"不是"删掉"

    如果新建的状态库也有问题(比如同步还是出错),还能把旧的移回来对比。**移走比删掉安全,是这类系统问题的通用做法**。确认稳定后(一般几小时到一天)再 `rm -rf` 删掉即可。

    # 已排除但无效的方案

    下面这些都试过没用,下次别浪费时间:
    - `killall -9 fileproviderd bird cloudd` —— 进程会重启但马上又卡
    - 整机重启 —— 状态文件损坏,重启后照样卡
    - 安全模式启动 —— 还卡(证明不是第三方扩展问题)
    - `pluginkit -e ignore` 禁用 iCloud / OneDrive 的 File Provider 扩展 —— 还卡
    - 删除 `com.apple.appkit.xpc.openAndSavePanelService` 偏好 —— 该域根本不存在

    # 诊断关键步骤(确认问题在用户域)

    新建测试用户登录,按 Cmd+O:
    - 新用户正常 → 100% 是当前用户 `~/Library/` 里损坏
    - 新用户也卡 → 系统问题,需要重装 macOS

    本次新用户正常,所以走下面的修复。

    # 根治方案

    移走当前用户的 iCloud / FileProvider 状态文件,让系统重建:

    ```bash
    BACKUP=~/Desktop/icloud_backup_fix
    mkdir -p "$BACKUP"

    mv -v ~/Library/Preferences/MobileMeAccounts.plist "$BACKUP/"
    mv -v ~/Library/Application\ Support/CloudDocs "$BACKUP/"
    mv -v ~/Library/Application\ Support/FileProvider "$BACKUP/"
    mv -v ~/Library/Caches/CloudKit "$BACKUP/"

    sudo killall -9 fileproviderd bird cloudd
    ```

    然后**注销当前账户重新登录**(不是关 App ,是注销)。

    # 预期结果

    - 注销重登后 Cmd+O 立即恢复正常
    - iCloud 同步自动恢复( Keychain 里凭据还在,通常不需要重新登录 Apple ID )
    - 云端 iCloud 文件全部完好
    - 本地 `~/Desktop`、`~/Documents` 文件全部完好
    - 备份目录里只是配置和缓存,确认稳定后可 `rm -rf` 删掉

    # 重要注意事项

    - 涉及到的命令在受 SIP 保护的目录上操作,需要终端有"完全磁盘访问权限"才能成功(否则 mv 会静默失败)
    - 不要把 `BACKUP=~/Desktop/icloud_backup_$(date +%Y%m%d_%H%M%S)` 这种带时间戳的写法分两次粘贴执行,每次粘贴 `date` 会重新求值,导致 mkdir 和 mv 的目标路径不一致
    - 路径中的空格必须转义:`~/Library/Application\ Support/...`
    - 移走前用 `ls -la` 先确认文件存在,新版 macOS 有些 plist 不再存在(如 `com.apple.bird.plist`、`com.apple.CloudDocs.plist`、`com.apple.FileProvider.plist`),不存在的跳过即可

    # 复发处理

    直接重跑上面的命令块即可。这类 SQLite 状态损坏在 macOS 上偶发。

    # 注意:备份目录的位置陷阱

    如果当时开启了"桌面与文稿文件夹"同步,`~/Desktop` 实际指向 `~/Library/Mobile Documents/com~apple~CloudDocs/Desktop`,备份会同步到云端。本次操作后即使关掉了"桌面与文稿"同步,这些备份目录仍留在 iCloud 云盘的 Desktop 文件夹里,需要手动到 `~/Library/Mobile Documents/com~apple~CloudDocs/Desktop` 下删除,而不是 `~/Desktop`。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1406 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 17:07 · PVG 01:07 · LAX 10:07 · JFK 13:07
    ♥ Do have faith in what you're doing.