进程生命周期管理
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(阈值杀)两类孤儿清理策略