Skip to content

Commit 5263ca0

Browse files
author
Manus AI
committed
feat: 补充 codex-fix 工具介绍,替换手动脚本章节
1 parent cd27acc commit 5263ca0

1 file changed

Lines changed: 78 additions & 39 deletions

File tree

‎source/_posts/codex-annoying-bugs.md‎

Lines changed: 78 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -217,53 +217,90 @@ sudo killall syspolicyd trustd 2>/dev/null
217217

218218
---
219219

220-
## 终极拯救指南:一键清理脚本
220+
## 终极拯救指南:codex-fix 工具
221221

222-
如果你不想每次都手动执行上述繁琐的命令,这里提供一个综合性的清理脚本。建议你将其保存为 `codex_fix.sh`,在每次觉得系统卡顿或磁盘空间报警时运行一次。
222+
如果你不想每次都手动执行上述繁琐的命令,这里有一个更好的选择——笔者专门为上述所有问题打包了一个开箱即用的诊断与修复工具:[**codex-fix**](https://www.npmjs.com/package/codex-fix) [4]。
223+
224+
### 安装与快速上手
225+
226+
无需安装,直接通过 `npx` 一键运行诊断报告(只读,不会修改任何文件):
223227

224228
```bash
225-
#!/bin/bash
226-
# Codex 完整清理和修复脚本
229+
npx codex-fix
230+
```
227231

228-
echo "=== Codex 问题诊断和修复 ==="
232+
或者全局安装后使用:
229233

230-
# 1. 退出 Codex
231-
echo "1. 退出 Codex 应用..."
232-
osascript -e 'quit app "Codex"' 2>/dev/null || true
233-
sleep 3
234+
```bash
235+
npm install -g codex-fix
236+
codex-fix
237+
```
234238

235-
# 2. 清理孤立进程
236-
echo "2. 清理孤立进程..."
237-
pkill -f 'SkyComputerUseClient|SkyComputerUseService|node_repl|browser_crashpad_handler' 2>/dev/null || true
239+
如果你的 Codex 已经卡死、无法正常工作,还可以直接通过 `curl` 运行,完全不依赖 Node.js 环境:
238240

239-
# 3. 清理 code_sign_clone 目录
240-
echo "3. 清理 code_sign_clone 目录..."
241-
base="$(dirname "$(getconf DARWIN_USER_TEMP_DIR)")/X/com.openai.codex.code_sign_clone"
242-
if [ -d "$base" ]; then
243-
find "$base" -maxdepth 1 -type d -name 'code_sign_clone.*' -exec rm -rf {} + 2>/dev/null || true
244-
echo "已清理: $base"
245-
fi
246-
247-
# 4. 阻止日志频繁写入 (保护 SSD)
248-
echo "4. 阻止日志频繁写入..."
249-
if [ -f "$HOME/.codex/logs_2.sqlite" ]; then
250-
sqlite3 "$HOME/.codex/logs_2.sqlite" \
251-
"CREATE TRIGGER IF NOT EXISTS block_log_inserts BEFORE INSERT ON logs BEGIN SELECT RAISE(IGNORE); END;" \
252-
2>/dev/null || true
253-
echo "已创建日志阻止触发器"
254-
fi
255-
256-
# 5. 恢复系统服务(清理 syspolicyd fd 耗尽状态)
257-
echo "5. 恢复系统服务..."
258-
sudo killall syspolicyd trustd 2>/dev/null || true
259-
260-
echo ""
261-
echo "=== 清理完成,当前状态 ==="
262-
echo "- code_sign_clone 目录数: $(find /private/var/folders/*/*/X/com.openai.codex.code_sign_clone -maxdepth 1 -type d -name 'code_sign_clone.*' 2>/dev/null | wc -l | tr -d ' ')"
263-
echo "- 日志数据库大小: $(ls -lh ~/.codex/logs_2.sqlite 2>/dev/null | awk '{print $5}' || echo '文件不存在')"
264-
echo "- syspolicyd Codex fd 数: $(sudo lsof -p $(pgrep -x syspolicyd | head -1) 2>/dev/null | grep -c 'MacOS/Codex' || echo '0')"
241+
```bash
242+
# 只读诊断报告
243+
curl -fsSL https://raw.githubusercontent.com/IchenDEV/codex-fix/main/scripts/codex_fix.sh | bash
244+
```
245+
246+
### 工具覆盖范围
247+
248+
`codex-fix` 的诊断报告会一次性呈现你最需要关注的所有关键指标:
249+
250+
| 检查项 | 对应 Bug |
251+
| :--- | :--- |
252+
| 日志数据库大小、行数、触发器状态 | SSD 寿命刺客 |
253+
| `code_sign_clone.*` 目录数量与总大小 | 克隆大军 |
254+
| Crashpad pending 转储文件数量 | 转储膨胀 |
255+
| Codex 相关 helper 进程数、CPU、内存、僵尸数 | 僵尸进程 |
256+
| `syspolicyd` 持有的 Codex 文件描述符数量 | syspolicyd 被打爆 |
257+
258+
### 安全设计:先预览,再执行
259+
260+
工具采用**默认只读**的设计哲学——所有修改操作都需要显式加上 `--apply` 标志才会生效,这让你可以放心地先预览将要发生的变化,再决定是否执行:
261+
262+
```bash
263+
# 先预览(dry-run)
264+
codex-fix --clean-clones
265+
266+
# 确认无误后,加上 --apply 真正执行
267+
codex-fix --apply --clean-clones
265268
```
266269

270+
### 常用修复命令速查
271+
272+
```bash
273+
# 安装 SQLite 触发器,阻止日志写入(自动备份数据库)
274+
codex-fix --apply --install-log-trigger
275+
276+
# 清理 code_sign_clone 幽灵目录
277+
codex-fix --apply --clean-clones
278+
279+
# 清理 Crashpad 转储文件
280+
codex-fix --apply --clean-crashpad
281+
282+
# 清理 SkyComputerUse 等 helper 进程
283+
codex-fix --apply --kill-helpers
284+
285+
# 重启 syspolicyd/trustd(App 启动冻结时使用)
286+
codex-fix --apply --restart-security-daemons
287+
288+
# 一键执行所有非 sudo 清理操作
289+
codex-fix --apply --all
290+
```
291+
292+
### 作为 Codex / Claude Code 技能使用
293+
294+
`codex-fix` 还支持作为 AI 编程助手的技能(Skill)安装,当 Codex 本身出现问题时,你可以让 Claude Code 来帮你跑诊断:
295+
296+
```bash
297+
# 安装为 Claude Code 技能
298+
mkdir -p ~/.claude/skills
299+
git clone https://github.com/IchenDEV/codex-fix.git ~/.claude/skills/codex-fix
300+
```
301+
302+
安装后,在 Claude Code 中执行 `/codex-fix` 即可触发诊断流程。
303+
267304
---
268305

269306
## 写在最后
@@ -272,7 +309,7 @@ Codex 作为一款强大的 AI 编程助手,无疑极大地提升了我们的
272309

273310
这些 Bug 的共同特点是:它们都在**默默地、持续地**消耗你的资源——无论是 SSD 的写入寿命、磁盘的可用空间,还是系统安全守护进程的文件描述符。很多用户可能在毫不知情的情况下,已经承受了数月的损耗。
274311

275-
在官方彻底修复这些问题之前,定期检查你的磁盘空间、监控 SSD 写入量,并备好上述的急救脚本,将是你在这场"人机博弈"中保护自己硬件的最佳策略。
312+
在官方彻底修复这些问题之前,定期运行 `npx codex-fix` 进行诊断,并在需要时执行对应的修复操作,将是你在这场"人机博弈"中保护自己硬件的最佳策略。
276313

277314
希望这篇文章能帮你拯救正在"流血"的 SSD 和正在被"打爆"的 `syspolicyd`,也期待 OpenAI 能尽快推出修复补丁,让我们可以更加安心地进行 Vibe Coding。
278315

@@ -285,3 +322,5 @@ Codex 作为一款强大的 AI 编程助手,无疑极大地提升了我们的
285322
[2] [Bug] macOS app leaves code_sign_clone directories after quit (~965MB per launch). GitHub Issue #25667. https://github.com/openai/codex/issues/25667
286323

287324
[3] Codex macOS app relaunches its own main binary in a tight loop, exhausting syspolicyd file descriptors and freezing all app launches system-wide. GitHub Issue #25882. https://github.com/openai/codex/issues/25882
325+
326+
[4] codex-fix: Diagnostic and mitigation toolkit for Codex Desktop and CLI resource-leak symptoms on macOS. npm. https://www.npmjs.com/package/codex-fix

0 commit comments

Comments
 (0)