---
summary: "发现超时和硬网关停止后 Codex 应用程序服务器进程清理"
read_when:
- "模型发现超时并让 Codex 进程继续运行"
- "网关停止导致 Codex 应用程序服务器进程落后"
- "新的 stdio 连接拒绝生成"
title: "Codex进程恢复"
sidebarTitle: "进程恢复"
---
OpenClaw 如何在模型发现超时或网关停止后清理 Codex 应用程序服务器子项。 [Codex harness运行时 ](/plugins/codex-harness-runtime) 指南的一部分; [ 每个部分移动的位置](/plugins/codex-harness-runtime#where-each-section-moved) 列出每个部分。
## 超时模型发现
如果书面发现请求到达截止日期而没有响应,则 OpenClaw 会停用该共享客户端。其他有效租约在其流程结束之前完成;未来的发现使用新的客户端。成功的发现仍然可以重复使用。
## 网关硬停止后恢复
在 POSIX 系统上,OpenClaw 在生成每个新的 stdio 子进程之前会检查已注册的孤立 Codex 应用程序服务器进程。网关启动还运行尽最大努力的后台扫描;产前检查仍然具有权威性。 OpenClaw 在发送 Codex `initialize` 之前,会在当前状态目录的 SQLite 插件存储中记录父进程和子进程标识,因此子进程在注册持久之前无法启动本机轮次。
清理仅针对其原始 OpenClaw 父级不再运行的已注册子级。在终止孤儿进程及其可发现的后代之前,它会检查进程 ID、启动时间和进程组。记录时,子命令行的指纹在发出信号之前也必须与实时进程匹配;持久注册仅存储摘要,而不存储原始参数。另一个活动的 OpenClaw 实例、在另一个状态目录下注册的进程以及外部管理的 WebSocket 或 Unix 套接字应用程序服务器均保持不变。这些可移植进程检查不提供原子操作系统所有权保证或发现在检查之前独立调整父级的后代。
Linux 直接从 `/proc` 读取进程标识,包括启动 ID 和进程启动刻度,因此 Alpine/BusyBox 安装不需要 `procps`。启动身份和命令检查共享 10 秒的截止时间。在 Linux 启动期间,空命令行会在该期限内等待,同时相同的实时进程标识仍然有效。注册仍然需要可用的命令指纹;无法读取或更改身份失败。 macOS 使用具有固定区域设置和时区的本机 `ps`。注册检查仅检查观察者和相关的父进程和子进程;不相关的不可读进程不会阻止这些检查。破坏性清理仍然需要在发出信号之前进行完整的进程树检查和新的身份检查。
如果无法检查所需进程或有界清理无法确认已注册的孤儿进程已消失,则新的 stdio 连接将失败,而不是生成另一个子进程。按照报告的原因进行操作:截止时间故障要求检查主机负载和网关日志,而拒绝访问故障要求检查 Linux 上的 `/proc` 访问或 macOS 上的 `ps` 权限。其他检查失败需要检查过程检查设施是否可用并返回可用数据。不要扩大权限来解决超时问题。如果清理无法停止经过验证的孤儿进程,请在重试之前检查并停止该进程。如果清理预算到期,请重试完成剩余的注册。
此恢复需要生成时注册。它不会发现较旧的 OpenClaw 版本留下的未注册子项,也不会扫描命令名称来推断所有权。 Windows 没有等效的孤儿注册或恢复。