守护进程管理
Daemon Service Management
跨平台守护进程:launchd(macOS)/systemd(Linux)/schtasks(Windows)统一抽象,支持安装/卸载/重启/状态检查
子问题
1.跨平台服务抽象
2.plist/unit文件生成
3.服务状态检测
4.运行时二进制路径解析
5.环境变量传递
6.遗留品牌服务迁移(产品重命名后旧服务残留冲突)
7.launchd GUI domain 限制(SSH/headless 环境无法 bootstrap)
8.systemd KillMode 与容器子进程的交互(conmon 阻塞重启)
各项目的解法1 solutions
Signals
横向对比
| 维度 | OpenClaw |
|---|---|
| 平台覆盖 | macOS launchd + Linux systemd + Windows schtasks 三平台统一接口 |
| 服务抽象 | GatewayService 类型 + resolveGatewayService() 工厂函数路由 |
| 配置生成 | 代码生成 plist XML / systemd unit INI / .cmd 批处理,非模板引擎 |
| 健康审计 | 13 种审计码覆盖 token 漂移、PATH 污染、运行时兼容性、配置完整性 |
| 遗留清理 | 多品牌标记扫描(openclaw/clawdbot/moltbot)+ 自动 bootout/disable |
| 环境隔离 | 最小化 PATH 构建,排除 nvm/fnm/volta 等 8 种版本管理器路径 |
| 运行时解析 | 优先当前 Node → 降级系统 Node,检测 Bun 不兼容场景 |
最佳实践
1.GatewayService统一接口抽象三平台
2.service-audit运行时健康检查
3.launchctl enable 清除持久化 disabled 状态后再 bootstrap
4.最小化 PATH 排除 8 种版本管理器路径防止升级后服务崩溃
5.审计分 recommended/aggressive 两级允许用户选择性修复