Skills Plugins MCP Prompt Model 导航 博客 资讯 我的中心

dsh-service-control

Restart & shutdown buttons in the session header utilities: graceful appExit shutdown, auto-restart of `dsh web` via scheduled task → launcher `-ControlledRestart`.

semidia @semidia ⬇ 1 ★ 0 main

安装

dsh plugin --profile web add github:semidia/dsh-service-control
下载安装清单

需要可复现安装时,可在仓库后追加 #commit 固定提交。

Restart & shutdown buttons in the session header utilities: graceful appExit shutdown, auto-restart of `dsh web` via scheduled task → launcher `-ControlledRestart`.

该插件未提供要点说明,请参考仓库 README。

  1. 安装并启动 DeepSeek Harness:npx @deepseek-ai/dsh web
  2. 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
  3. 用 dsh plugins list 确认已安装,必要时重启 Harness 生效

插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。

代码仓库github.com/semidia/dsh-service-control
许可证MIT
主要语言main
下载量1
GitHub 星标0
最近推送2026-08-16
收录日期2026-09-19
分类会话与消息

事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。

以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。

# dsh-service-control

在 DeepSeek Harness(DSH)Web **会话头部右侧工具区**(导出会话/修复会话按钮旁)提供 **「重启服务」** 与 **「关闭服务」** 两个按钮,让你不用回到终端窗口,就能在 UI 里直接重启或关闭整个 `dsh web` 进程。

- **重启服务**(⟳):优雅关闭当前进程 → 自动重新拉起 `dsh web`,前端 WebSocket 自动重连,页面无需手动刷新。
- **关闭服务**(⏻):优雅关闭整个 `dsh web` 进程,前端页面随后自动关闭(被浏览器拦截时回退到空白页,手动关标签即可)。

## 功能

- **两段式确认**:点击一次按钮变红显示「确认?」,5 秒内再点一次才真正执行,防止误触。
- **优雅退出**:通过 DSH launcher 的 `ctx.appExit(0)` 退出入口,先 dispose 整个应用树(保存会话、关闭 WebSocket 等),等价于在启动窗口按 Ctrl+C,不会强杀丢数据。
- **自动重启(适配新启动器)**:重启走 `restart-web.ps1` → 一次性计划任务 → `restart-helper.ps1` → 启动器 `-ControlledRestart`。计划任务独立于后端进程树,杀后端不影响它;`-ControlledRestart` 复用「先启动后诊断」路径,不弹菜单、不开浏览器,只以退出码和日志报告。日志写入 `restart-web.log(.err)`。
- **重启后保留**:作为 profile 本地插件(junction 到 profile 的 node_modules 并在 `cordis.patch.yml` 登记),进程重启后按钮依然存在——这是它与动态插件形态的根本区别。

## 安装

1. 将本包放入工作区,例如 `插件开发/dsh-service-control`。
2. 在 profile 的 node_modules 里建 junction:

   ```powershell
   New-Item -ItemType Junction `
     -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\dsh-service-control" `
     -Target "D:\ds harness默认工作区\插件开发\dsh-service-control"
   ```

3. 在 `cordis.patch.yml` 末尾追加:

   ```yaml
   - insert:
       - id: dsh-service-control
         name: 'dsh-service-control'
   ```

4. 重启 `dsh web` 生效。

> 路径硬编码:Host 半区里的 `D:\DeepSeek Harness` 与 `3080` 是当前部署事实,如需移植到其他部署请同步修改 `lib/index.js` 顶部的 `DSH_WEB` / `DSH_ROOT` / `PORT`。

## 原理

- Host 半区通过 `ctx.connection.rpc.handle(RPC_CHANNEL, handler, { authority: 'loopback' })` 暴露两个 endpoint:`service/restart`、`service/shutdown`。
- 关闭:`ctx.get('appExit')(0)` 优雅退出整个进程。
- 重启:`spawn` detached 的 `pwsh` 运行 `restart-web.ps1`(注册一次性计划任务),再 `appExit(0)` 退出宿主;计划任务独立运行 `restart-helper.ps1` → 启动器 `-ControlledRestart`。

## 许可证

MIT

数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。

每日精选 Skill 推荐,免费送到你邮箱

输入邮箱,每天接收一个精选 AI Agent 技能推荐。完全免费,持续更新。

提交后我们会发送一封确认邮件,点击邮件里的链接才会开始收信。

完全免费,取消任意时间。我们不会发送垃圾邮件。