前言¶
DeepSeek Harness(DSH)默认以后台进程(Windows 下 Start-Process … -WindowStyle Hidden,Linux 下为后台服务)启动。宿主运行在无窗口或无显式控制台的环境中,出现异常或需要重启时,缺乏直观的 UI 入口。
dsh-process-control 是一个 Web 插件,在侧边栏「设置」那一行的右侧添加了一个进程控制按钮,提供重启宿主、刷新页面或结束进程的能力。
这是什么¶
- 插件名:
dsh-process-control - 维护者:
baicaibucai1 - 类别:Web UI、系统
- 许可证:MIT
- 定位:DSH 宿主进程管理工具,支持状态查询与远程控制。
核心功能¶
插件通过一个悬浮按钮提供以下操作:
- 重启 DSH 宿主:从宿主启动时的确切命令行重新启动,并释放监听端口。浏览器会自动重连。
- 刷新页面:刷新当前 Web 页面。
- 结束进程:终止宿主进程(使用 SIGTERM,失败时强制退出)。
- 获取状态:显示当前宿主的 PID、端口、平台信息等。
- 安全限制:仅接受同源(Same-Origin)的 loopback 请求,拒绝通过代理转发的请求。
安装与启用¶
通过 DSH CLI 安装即可自动处理配置:
dsh plugin --profile <profile> add dsh-process-control
该命令会将插件加入 dsh.profile.bundles,并在启动时合并插件的 cordis.patch.yml。无需手动修改配置文件。
配置说明¶
在 profile 的 cordis.patch.yml 中,可通过 config 字段控制行为:
- id: process-control
config:
openBrowser: false # 重启成功后是否打开默认浏览器访问新地址
hideCordisPanel: true # 是否隐藏侧边栏底部的 Cordis 面板入口
openBrowser:默认为false。重启后,宿主会生成新的…/?token=…地址。由于持久化 Cookie 的存在,通常无需打开浏览器;若 Cookie 失效,可将其设为true以打开诊断文件中的地址。hideCordisPanel:默认为true。通过注册同 ID(cordis-panel)且优先级更高的条目来替换原有单元格,使其不渲染内容。这比禁用整个ui-cordis更安全,不会影响对话中的 Cordis 工具卡片。
注意事项¶
- 二次确认:重启和退出操作需要二次点击确认,防止误触。
- 仅 Loopback:插件提供的 HTTP 路由(
/status,/restart,/quit)仅验证 peer address 是否为 loopback,且禁止Forwarded等代理头,确保仅宿主自身可访问。 - ** detached 启动**:宿主进程通常以 detached 模式启动,关闭窗口不会终止进程,需通过此插件操作。
适用场景¶
适用于需要频繁重启 DSH 宿主或排查宿主卡死情况,但不想关闭终端或手动操作系统进程的场景。
参考资源¶
- 插件目录:https://www.skillhub.cn/plugins/baicaibucai1/dsh-process-control
- 源码仓库:https://github.com/baicaibucai1/dsh-process-control