# 提醒：我的 Mac 无法启动，因为测试运行留下了 4100 万个 Chrome 临时文件。如果你的智能体跑浏览器测试，检查一下临时文件夹

- 原标题：PSA: my Mac wouldn’t boot because my test runs left 41 million Chrome temp files behind. If your agents run browser tests, check your temp folder.
- 类型：帖子
- 来源：Reddit
- 发布时间：2026-10-27
- 首次精选：2026-10-27 11:32
- 分级：值得看
- 学习层级：进阶
- 主题：[computer-browser-agents](<https://oplearnx.com/md/topics/computer-browser-agents.md>)（第 8 位）、[agent-evaluation-reliability](<https://oplearnx.com/md/topics/agent-evaluation-reliability.md>)（第 19 位）
- 原文链接：[https://reddit.com/r/ClaudeAI/comments/1xg9jt1/psa\_my\_mac\_wouldnt\_boot\_because\_my\_test\_runs\_left](<https://reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left>)
- 本站页面：[https://oplearnx.com/resources/pk\_d16ce90b4b5e](<https://oplearnx.com/resources/pk_d16ce90b4b5e>)

## 摘要

r/ClaudeAI 的社区帖子，作者（独立开发者，做日志类应用）讲述其 Mac Studio 卡在启动进度条，借另一台电脑取出启动日志、用 Claude Code 帮忙分析后发现，每次启动都卡在登录前清理临时文件夹这一步，而该文件夹里有 4100 万个文件。原因是智能体启动无头 Chrome 做 UI 检查和截图时，每次运行生成一个临时 Chrome 配置文件夹，运行正常结束会删除，被中断或崩溃则残留。帖子给出的解决办法是把该文件夹移走再重启，并列出自查与预防建议：为每次运行设置独立 TMPDIR 并在退出信号时删除、结束整个进程组、加 --use-mock-keychain 等参数、测试前统计临时目录文件数。适合让智能体运行浏览器测试的开发者阅读。

## 原帖

> Every launch creates a throwaway Chrome profile folder \(thousands of small files\). When a run ended cleanly, it got deleted. When a run was killed \(timeouts, me stopping a job, a crash\), it didn’t.

— bekircagricelik · 2026-10-27 · [原帖](<https://reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left>)

## 中文大意

发帖人是独立开发者，做日记应用，跑大量自动化测试：agent 启动 headless Chrome 做 UI 检查和截图，每次启动生成一个临时 Chrome profile 文件夹（含成千上万小文件）。干净结束时会被删除，但运行被中断（超时、手动停止、崩溃）时不会，几周累积到 4100 万个文件，导致 Mac Studio 卡在开机进度条，安全模式和急救都无效，最后发现每次启动都死在登录前清理临时目录这一步。解决办法是把该文件夹移走再重启，随即正常启动、数据无损。他给出几条做法：每个任务用独立 TMPDIR 并在 EXIT/INT/TERM 上 trap 清理；通过包装脚本启动 Chrome 时要杀整个进程组，否则 Chrome 变成孤儿进程；加 --use-mock-keychain --password-store=basic 避免几十个测试 profile 频繁访问钥匙串；大测试前…

## 讨论区核心观点

依据 6 条评论。

- trap 抓不到 SIGKILL，也覆盖不了 OOM kill、内核崩溃或断电；超时包装脚本常在 TERM 无效后升级为 kill -9，所以只在结束时清理仍会泄漏，只是慢一些。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rp9kkg86nq9/>)）
- 更可靠的是在每次运行开始时清扫：用 PID 命名每次运行的临时目录（如 $BASE/run-$$），启动前遍历 run-\* 目录，用 kill -0 判断对应 PID 是否还活着，不活就删除；并显式传 --user-data-dir 放在该目录内，避免 profile 落到清扫范围之外。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rp9kkg86nq9/>)）
- 发帖人认同这是真正的缺口，表示已改为按 PID 清扫死掉的运行目录，并把清扫挂到 SessionStart hook 上——会话被 kill 后它仍会执行，而会话结束时的清理钩子不会。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rpf5purimjm/>)）
- 另一条同类建议：清理放在运行开头而不是结尾，每个运行用独立目录（--user-data-dir=$RUN\_DIR/chrome 加 TMPDIR=$RUN\_DIR），下次运行前删掉超过一天的目录，这样被杀的运行只损失一个文件夹。发帖人表示已采用并加了“删除超过一天”的兜底。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rpbbdlur8gw/>)）
- 4100 万个文件的数量令人难以想象，有人表示 trap on EXIT/INT/TERM 这条建议正是自己想给测试脚本补上的。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rp8gi4rucgw/>)）
- 有人抱怨 Claude 不断往 /tmp 里塞垃圾、从不自行清理，满了还报怨。（[出处](<https://www.reddit.com/r/ClaudeAI/comments/1xg9jt1/psa_my_mac_wouldnt_boot_because_my_test_runs_left/19rpociko1qqr/>)）

---
来源：LearnMap · 学径（https://oplearnx.com）
