
codex-desktop-linux进程治理三件套MCP helper reaper与node-repl reaper全解析【免费下载链接】codex-desktop-linuxUnofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. Includes Chat, Work, and Codex. Packages for Debian/Ubuntu (.deb), Fedora/openSUSE (.rpm), Arch (pacman), Nix/NixOS, and AppImage, with Wayland and X11 support.项目地址: https://gitcode.com/gh_mirrors/co/codex-desktop-linuxcodex-desktop-linux是一款面向 Linux 的非官方 ChatGPT 桌面应用原 Codex 桌面版内置 Chat、Work 与 Codex 三大能力支持 Wayland/X11 及 .deb、.rpm、pacman、Nix、AppImage 多种打包方式。但在长期使用中Codex 派生的孤儿进程会悄悄吃掉内存——这个项目用一套进程治理三件套MCP helper reaper node-repl reaper 生命周期钩子触发器优雅解决了 MCP 进程泄漏与 Browser Use 助手残留两大难题。痛点孤儿进程是怎么赖着不走的Codex 在执行任务时会派生大量辅助进程helperMCP helper模型上下文协议MCP服务器进程有些还牵着语言服务器、构建守护进程、桌面端 sidecar 一整个进程树node_repl 助手Browser Use浏览器操作场景下由 Codex 拉起的 Node 辅助进程。问题在于当拥有它们的 Codex 进程退出后这些 helper并不总是随之退出。项目文档记录了一次生产环境观察一个最小化到托盘的实例15 分钟泄漏了 6 个 node_repl 助手并且它们一直存活超过一天每个都持续占用内存和文件描述符。在 Linux 上被遗弃的进程会被 init 或 user systemd 收养从此在进程表里安家落户。这就是 codex-desktop-linux 引入进程治理机制的动机。进程治理三件套30 秒看懂分工 组件技术栈职责MCP Helper ReaperRust 小型二进制回收 Codex 退出后遗留的孤儿 MCP 助手树node-repl ReaperBash 脚本回收 Browser Use 场景泄漏的 node_repl 进程生命周期触发器Shell 钩子在冷启动、应用退出、会话开始三个时机驱动上述回收器前两者互不冲突、可同时启用MCP helper reaper 不包裹也不回收存活的node_repl进程泄漏的 Browser Use 助手完全交给 node-repl reaper 处理。MCP Helper Reaper精准识别真孤儿的 Rust 回收器实现源码见 linux-features/mcp-helper-reaper/核心二进制是 Rust 编写的codex-mcp-helper-reaper入口逻辑在 reaper/src/main.rs。三重视锤判定宁可放过不可错杀回收一个进程是危险操作。reaper 要求候选进程同时满足三个条件才会动手已被 init 或 user systemd 收养——证明它不再是任何 Codex 的子进程带有源自 Codex的证据——命令行、工作目录、进程年龄仅作为线索活着的 Codex 父进程下的相似进程一律视为正常匹配已配置的 MCP 服务器命令或本应用暂存的 helper 路径。它的识别方式是通用的而非硬编码任何具体工具从 Codex 配置读取已配置的 MCP 服务器命令含解释器启动的脚本与同目录 wrapper sidecar通过暂存的插件/资源路径识别捆绑插件助手识别 MCP/stdio 风格约定的命令行忽略shell -c子进程避免误伤普通工具执行。活着的 Codex 父进程只被用来读取其 MCP 配置其 helper 子进程绝不会被回收。三个触发时机覆盖进程生命周期冷启动cold-start-hook.sh 安装会话钩子后在后台启动 reaper默认延迟 3 秒、执行 3 轮、每轮间隔 2 秒应用退出after-exit-hook.sh 立即执行一轮清理会话开始安装器会向CODEX_HOME/hooks.json合并一个 CodexSessionStart钩子由 install-session-hook.sh 管理每次新会话都顺带做一次延迟清理。node-repl Reaper专治 Browser Use 进程泄漏实现位于 linux-features/node-repl-reaper/核心是仅百余行的 reaper.sh要求 Bash 4.4。它只盯住本安装目录下的resources/cua_node/bin/node_repl路径——多份并存安装各自独立回收互不干扰。祖先链追溯 64 层如何判定已泄漏判定一个 node_repl 是否泄漏核心是回答一个问题它的祖先链上还有没有活着的 Codexreaper 从该进程出发逐层向上遍历父进程最多追溯 64 层因为统一的 Computer Use 启动器通过 Node 启动助手直接父进程未必是 Codex只要发现活着的 Desktopcodex app-server或 CLI Codex如codex resume祖先立即判定为活跃会话绝不动手若进程信息不可读、祖先中途消失、或 64 层内没走到根一律保守放弃宁可下轮再看遍历会穿过codex-linux-sandbox与codex-mcp-helper-reaper这类中间进程它们不算Codex 拥有者。冷启动看门狗 退出即扫两个运行模式watch 模式冷启动cold-start-hook.sh 为每个安装启动一个看门狗pid 文件state-dir/node-repl-reaper.pid每 5 分钟回收一轮最多等待 120 秒让官方ChatGPT进程现身一旦本安装的 ChatGPT 进程全部消失执行最后一轮清理后自动退出不留常驻负担once 模式退出时after-exit-hook.sh 在应用退出后跑一轮立即清理。SIGTERM 先行温和但坚决的退出策略回收采用两步走先发SIGTERM给进程优雅退出的机会等待宽限期默认 5 秒升级SIGKILL前会再次核对进程身份与祖先链——如果这段时间里该进程有了新的活着的 Codex 拥有者立即收手。日志写入启动器日志~/.cache/codex-desktop/launcher.log统一带node-repl-reaper:前缀方便排查。如何启用两步开启进程自愈两个特性默认关闭互不冲突建议一起开启。在linux-features/features.json中添加{ enabled: [mcp-helper-reaper, node-repl-reaper] }然后重新构建/重装即可。构建与清理逻辑分别由 stage.sh 和 cleanup.sh 负责禁用后重新构建时清理钩子会自动还原遗留的旧包裹器、移除暂存的钩子与二进制并从CODEX_HOME/hooks.json摘除本特性的SessionStart标记——卸载干净不留尾巴。可调参数速查表 ⚙️想微调行为可通过环境变量控制均有合理默认值环境变量作用默认值CODEX_MCP_HELPER_REAPER_DISABLE设为1关闭全部清理触发—CODEX_MCP_HELPER_REAPER_DISABLE_HOOK跳过安装 SessionStart 钩子—CODEX_MCP_HELPER_REAPER_DELAY首轮清理延迟秒3CODEX_MCP_HELPER_REAPER_PASSES清理轮数3CODEX_MCP_HELPER_REAPER_INTERVAL轮间间隔秒2CODEX_MCP_HELPER_REAPER_TERM_TIMEOUTSIGTERM 宽限期秒2CODEX_NODE_REPL_REAPER_INTERVAL看门狗巡检间隔秒300CODEX_NODE_REPL_REAPER_STARTUP_GRACE等待 ChatGPT 启动的秒数上限120CODEX_NODE_REPL_REAPER_KILL_GRACESIGKILL 升级前的宽限期秒5常见问题会不会误杀我的进程不会。三件套的安全边界设计得很清晰只认孤儿两个回收器都以祖先链上不存在活着的 Codex 进程为唯一回收前提活跃的 Browser Use 会话、活跃的 MCP 服务器完全不受影响证据链充分MCP helper 必须被 init/systemd 收养且能匹配配置或暂存路径node_repl 必须精确匹配本安装的node_repl二进制路径动手前二次确认升级 SIGKILL 之前会重新核对进程身份与祖先关系竞态窗口下也会收手可完全关闭一个环境变量即可静默所有触发点。小结codex-desktop-linux 的进程治理三件套把辅助进程泄漏这一 Linux 桌面应用的顽疾拆解为精准识别三重视锤 64 层祖先追溯、时机覆盖冷启动 / 会话开始 / 退出、温和退出SIGTERM → 二次确认 → SIGKILL三个层次在绝不误伤活跃会话的前提下实现了进程自愈。如果你正在长时间使用 Browser Use 或大量 MCP 工具开启这两个特性是防止内存缓慢流失的明智之选。更多特性说明可参考官方文档 docs/linux-features-architecture.md 与 linux-features/README.md。【免费下载链接】codex-desktop-linuxUnofficial ChatGPT desktop app for Linux (formerly the Codex app), built locally from OpenAI’s official macOS app. Includes Chat, Work, and Codex. Packages for Debian/Ubuntu (.deb), Fedora/openSUSE (.rpm), Arch (pacman), Nix/NixOS, and AppImage, with Wayland and X11 support.项目地址: https://gitcode.com/gh_mirrors/co/codex-desktop-linux创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考