问题域/PD-109

进程生命周期管理

Process Lifecycle Management

守护进程管理、优雅关闭、孤儿进程清理、跨平台进程协调、版本热更新与并发重启防护

子问题

1.PID 文件协调

2.多步有序关闭

3.孤儿进程检测与清理

4.跨平台进程生成

5.版本不匹配检测与自动重启

6.并发会话重启风暴防护

7.SDK 隐藏子进程 PID 捕获

8.Windows zombie port 修复

各项目的解法1 solutions

Signals

横向对比

维度claude-mem
PID 协调JSON PID 文件(pid+port+startedAt),worker 自写避免竞态,mtime 协调并发重启
关闭策略7 步固定顺序:先枚举子进程,再 HTTP→Session→MCP→Chroma→DB→forceKill
孤儿清理三层:启动 aggressive + 运行时 5min reaper(registry+ppid=1+idle daemon)+ 关闭 forceKill
跨平台适配Unix setsid 隔离 + Windows PowerShell Hidden + Bun 运行时自动解析
子进程追踪ProcessRegistry Map + PID 捕获 spawn + ensureProcessExit SIGKILL 升级
版本热更新health API 版本检测 + PID mtime 防重启风暴 + httpShutdown → respawn

最佳实践

1.关闭时先枚举子进程再逐步关闭服务

2.PID 文件由 worker 在 listen 成功后自写,不由 spawner 写入

3.区分 aggressive 和 age-gated 两类孤儿清理策略

4.用 PID 文件 mtime 协调多会话并发重启

5.daemon 模式忽略 SIGHUP + setsid 双重终端隔离

6.区分 aggressive(立即杀)和 age-gated(阈值杀)两类孤儿清理策略