在 DSH 的使用过程中,修改插件或配置后需要重启服务。大多数方案依赖特定的守护进程或手动操作。下面介绍一个插件,它通过一个按钮在 Web 界面中处理所有场景的重启逻辑。
这是什么¶
dsh-restart-anywhere 是由 JoblessJoe 开发的 DSH Web 界面插件。它为侧边栏“设置”上方添加了一个“重启 dsh”按钮,支持 systemd、Docker/Podman/Kubernetes、pm2、supervisord、launchd、终端/tmux 和 Windows。它原地重启(相同 PID),无需检测或配置守护进程,并且零运行时依赖。
安装与启用¶
- 安装到你的 DSH Web 配置文件(
web下方是配置文件名;使用支持你的 Web GUI 的配置文件)。从源代码检出,使用pnpm dsh代替npx @deepseek-ai/dsh:
npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere
- 需要满足环境要求:dsh >= 0.2.0 和 Node >= 20。
核心功能¶
- 界面集成:在侧边栏“设置”上方添加“重启 dsh”按钮。
- 多环境支持:兼容 systemd、Docker/Podman/Kubernetes、pm2、supervisord、launchd、终端/tmux 和 Windows。
- 原地重启:在 systemd、容器、pm2 等场景下保持相同的 PID,无需检测守护进程或配置。
- Agent 工具:Agent 可以调用
dsh_restart工具,配合continue_prompt在重启后恢复会话。
典型用法¶
- 手动重启:点击“重启 dsh”按钮并确认。页面会在服务恢复后自动刷新。
- Agent 重启:Agent 在安装或编辑插件后调用
dsh_restart({ continue_prompt })。重启完成后,Agent 会用提供的文本唤醒会话继续执行。
注意事项与安全¶
- 登录要求:重启路由受
ctx.connection.fetch保护,仅限已登录用户。在公开暴露的实例上,未认证请求将返回 401。 - 无 Shell 命令:不使用 shell 命令执行,仅依赖 Node.js API 和
systemd-run(当 dsh 作为 systemd 服务时)。
该插件通过提供跨平台、无依赖的原地重启能力,简化了 DSH 的运维流程。更多细节请参考 GitHub 仓库 或 插件目录。