问题域/PD-182

进程生命周期管理

Process Lifecycle Management

管理子进程注册、僵尸进程清理、有序关闭和跨平台端口释放

子问题

1.子进程 PID 追踪与注册

2.僵尸进程检测与强制终止

3.多步有序关闭编排

4.跨平台(Windows/Unix)端口释放

5.SDK 隐藏子进程 PID 的拦截与捕获

6.并发进程池的零轮询背压控制

7.daemon 启动时跨会话残留进程的激进清理

8.stale session 阻塞孤儿收割的级联问题

各项目的解法1 solutions

Signals

横向对比

维度claude-mem
进程追踪方式Map<PID, TrackedProcess> 注册表 + SDK spawn 拦截捕获 PID
僵尸防护策略三级收割:注册表级(session消失) + 系统级(ppid=1) + daemon子进程级(idle>2min)
关闭编排7步有序关闭:HTTP→Session→MCP→Chroma→DB→子进程→PID文件
信号升级SIGTERM 等待 5s → SIGKILL 强杀,事件驱动非轮询
跨平台适配Windows: taskkill /T /F + PowerShell WQL枚举 + 500ms端口释放延迟
并发控制Promise waiter队列实现零CPU开销背压,可配置maxConcurrent

最佳实践

1.使用 PID 注册表追踪所有子进程,定期收割孤儿进程

2.用自定义 spawn 函数拦截 SDK 的进程创建以捕获 PID

3.SIGTERM→SIGKILL 两阶段升级确保进程必定退出

4.有序关闭时先枚举子进程再关闭服务,避免遗漏

5.Windows 关闭 HTTP server 后需额外延迟等待端口释放