dsh-power-switch:会话头部的真实进程重启与关闭

前言

在 DeepSeek Harness(DSH)里装插件、卸插件或改配置,文档里常会提示「重启后生效」。若习惯在任务管理器里从众多 node.exe 里辨认 DSH 再结束进程,容易误关其它 Node 服务;关掉之后还要回忆当初的启动命令,端口占用或端口变化也会让浏览器里旧地址失效。页面刷新或路由刷新只会重载前端,不会让宿主进程重新加载插件与配置。

下面介绍社区插件 dsh-power-switch:在会话界面右上角增加一枚电源控件,通过两次确认点击,结束或重启当前 DSH 进程本身,而不是假装重启的 UI 操作。

这是什么

dsh-power-switch 由维护者 hongdougao111 发布,在 SkillHub 插件目录中归类为客户端插件。它在 DSH 会话头部右侧注入电源图标,菜单内仅提供「重启」与「关闭」两个动作;每个动作需连续点击两次,第一次为确认,第二次才执行。

插件当前版本为 0.1.4(见仓库 package.json),许可证为 MIT。

核心功能

界面与交互

电源图标位于会话头部右侧,不与最小化、隐藏、关闭等窗口控件抢位。点开菜单后只有两个按钮:

按钮 行为
重启 结束整个 DSH(含 Desktop 主进程),随后自动拉起新实例
关闭 结束整个 DSH,不自动拉起

与「刷新页面」的区别

重启与关闭针对的是操作系统中的 DSH 相关进程。旧 Web 页面随旧进程消失;执行后界面会显示「正在关闭 / 正在重启」,等待连接断开即可。新实例需从 Desktop 应用或启动器重新进入;DSH 可能选用新端口,原浏览器地址不一定继续有效。

Desktop 下的实现要点(README 说明)

在 Desktop 形态下,插件通过自省 process.pid、process.ppid、process.execPath 定位主进程,再经 detached helper 在响应返回后执行 taskkill /PID <主进程> /F(不带 /T),避免强杀子树导致宿主来不及落盘。主进程退出后,宿主因 IPC 断开走正常关闭流程;helper 等待旧实例与端口释放后,用原 exe 拉起新实例,并通过 MainWindowHandle 等条件确认窗口出现后再清理残留进程。

README 还说明:新版本通过结束桌面主进程,避免仅杀宿主子进程时出现的 Error: dsh desktop host stopped 弹窗。

纯 Web / 宿主形态

以 dsh web 或 node bin.js 启动、没有 Electron 主进程时,插件会直接结束宿主自身;API 的 facts / restartable 字段会如实反映当前是否支持重启。

安全边界

  • 仅接受同源 POST,跨站请求返回 403
  • HTTP 服务只监听本机 loopback
  • 除重启、关闭外无其它远程动作;关闭不会删除会话、配置或插件文件

安装与启用

在插件市场搜索「电源」或 power,或执行:

dsh plugin add dsh-power-switch

README 写明:安装完成后需要手动重启一次 DSH 才能加载插件;之后可用本插件完成后续重启或关闭。

典型用法

  1. 改完插件或配置、需要让变更生效时:打开右上角电源菜单 →「重启」→ 连点两次 → 等待当前页面断线 → 从 Desktop 或启动器重新进入 DSH。
  2. 仅需退出当前实例、不立刻拉起时:同一菜单 →「关闭」→ 连点两次。
  3. 自检当前插件状态(将 <port> 换成当前 DSH 监听端口):
curl http://127.0.0.1:<port>/dsh-power-switch/api

返回中包含 pid、port、platform、restartable 等字段;若 restartable 为 false,插件会拒绝重启而非猜测进程关系。

适用场景与注意

适合:经常在同一台机器上调试 DSH 插件与配置、希望用固定入口结束或重启当前实例的开发者。

注意:

  • 插件以当前 DSH 进程权限运行,安装前应在 GitHub 阅读源码与 MIT 许可证,自行评估是否满足环境要求。
  • 只能管理当前这一份 DSH 实例;多实例需多 profile,不能当作批量集群工具。
  • 重启成功后旧浏览器标签可能仍显示断线或空白,属预期行为;若十几秒后页面仍无反应,界面会提示再试一次;helper 失败时可能弹出原生提示,需手动启动应用。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;插件星标数以目录页展示为准(当前为 2)。

链接

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

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

Xiaoye