dsh-treekeeper:DSH 进程树对账与治理插件

DSH 任务账本与实际运行的操作系统进程之间常出现偏差。可能是进程泄漏,也可能是孤儿进程,亦或是归属关系不清晰。dsh-treekeeper 旨在解决这些问题。它对账 DSH 任务账本与 OS 进程树,定位归属、检测泄漏并安全治理。

安装与启用

安装该插件会将它注册到指定的 DSH profile 中。

dsh plugin --profile web add dsh-treekeeper

安装后需要重启 DSH Web 才能生效。

核心功能

该插件提供以下功能:

  • 进程采样与归属:采样当前 DSH 宿主的进程树,把每个进程归属到创建它的任务。同时检测重复命令、孤儿进程与长时间运行的插件子进程。
  • 会话对账:对照任务账本与根 session 的 subagent 子代理树,识别进程与任务的关系。
  • 安全治理:提供受保护的整树终止功能。
  • 插件识别:从命令行中的 node_modules 路径识别进程所属插件。
  • 面板展示:
    • DSH 宿主子进程分区默认收起,数量显示在标题上。
    • 面板头部显示宿主类型(取自宿主进程的可执行路径与命令行,不依赖环境变量)。
    • 桌面应用自身的 Electron 进程在未归属分区内单列为一个进程组。
  • Finding 置信度:finding 的置信度分三档(exact、indicative、inferred),用于辅助判断终止目标。

配置

配置仅在当前进程中生效,重启后恢复默认值。

字段 默认值 取值范围 作用
pollMs 0 0(按请求采样)或 2000–600000 ms 后台采样间隔
allowKill true 布尔值 受保护的进程树终止开关
extraWhitelistPids [] PID 数组 额外受保护的 PID

典型用法

  • 打开面板:点击页面左下的 dsh-mini-utility-dock launcher 打开全局面板。也可以通过会话标题栏打开面板并聚焦该 session。
  • 查看缓存:查看会话已缓存的事实。
  • 终止操作:通过身份核对确认终止目标。

安全与边界

平台与降级

  • 平台限制:仅支持 Windows。在非 Windows 平台会报告 unsupported_platform。
  • CIM 降级:CIM(Windows Management Instrumentation)不可用时,插件会降级为只读采样,归属与终止功能将被禁用。

访问控制

  • 凭据复用:DSH 0.1.0-rc.7+ 版本复用 Connection 的签名 cookie。
  • 准入规则:
    • 宿主有 Connection:由 Connection 的 Host/Origin 校验与签名 cookie 决定。
    • 宿主无 Connection:由本插件守卫按 TCP 对端地址、Fetch Metadata、Origin 与 loopback Host 判定。
  • 远端可达:宿主配置 trustedHosts 且监听 0.0.0.0 时,持有有效浏览器会话的远端可调用包括 kill 在内的接口。
  • 写入限制:仅接受 POST 请求。

终止护栏

为了防止误杀,终止操作设有以下护栏:

  1. 激活:第一次点击激活按钮,6 秒内有效。
  2. 确认:第二次点击弹出浏览器确认框。
  3. 快照:要求 15 秒内的完整快照。
  4. 身份核对:请求进入时按快照核对 PID 创建时间。
  5. 执行前复核:终止前重新采样,再核对一次创建时间。
  6. 归属限制:仅归属根为 DSH 宿主的进程可终止,未归属进程只用于排查。
  7. 不可终止列表:系统关键进程、当前宿主、启动链与 extraWhitelistPids 中的 PID 不可终止。
  8. 白名单限制:额外白名单 PID 只作为排查用的归属根,其子进程可见但不可终止。
  9. 受保护子进程:终止前即时采样的树含任一受保护 PID 时,整个操作被拒绝。

限制说明

  • PID 映射:Jobs 与 OS 进程之间没有稳定的 PID 映射。
  • 命令行匹配:命令行匹配只用于排查,不触发自动操作。
  • 日志记录:Findings 与终止结果写入 $DSH_HOME/treekeeper/history.l。

总结

dsh-treekeeper 是一个专注于进程树对账与安全治理的工具。它通过严格的准入校验和多层护栏,确保在清理泄漏或孤儿进程时不会影响系统关键服务或当前任务。对于需要精细化管理 DSH 进程环境的场景,该插件提供了必要的可视化与控制能力。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜