dsh-simple-restart
在终端中运行以下命令:
dsh plugin install yizhixiaokong/dsh-simple-restart
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 终端中执行 dsh plugin install yizhixiaokong/dsh-simple-restart 即可安装,插件源码位于 https://github.com/yizhixiaokong/dsh-simple-restart 。
插件介绍
dsh-simple-restart 解决的是一个很具体的痛点:修改了 dsh web 的客户端插件代码后,必须重启宿主进程才能看到效果,而重启意味着回到终端——找不到窗口、进程被 systemd 守护,都不方便。这个插件在 Settings → General 里加了一行按钮,二次确认后让 dsh web 带着原有启动参数重新跑起来,全程不离开浏览器。
实现上有一个值得留意的设计:宿主进程无法替换自身,新进程又必须在监听端口真正释放之后才能启动,否则撞上 EADDRINUSE。因此重启被组织成两个进程之间的一次握手——宿主生成一个 detached helper,把完整的启动信息交给它后退出;helper 通过向端口发起连接(而非绑定)来确认端口已释放,再启动替代进程并等待最多 20 秒确认绑定成功。若后续出错,诊断信息写入 $TMPDIR 下的 .err.log 与 .out.log。
安全围栏同样细致:接口仅接受 loopback 同源 POST,任何转发头或跨域 Origin 一律 403;检测到 systemd 监管时默认禁止重启(避免 KillMode=control-group 连带杀掉 helper);检测到调试器同样拒绝;同一时刻仅允许一次重启,并发请求返回 409。
它最适合正在开发 dsh 客户端插件的工程师——改完代码点一下即可生效;也适合日常使用 dsh web、进程跑在后台终端或被服务管理器守护、手动重启比较麻烦的任何人。
截图预览
使用场景
- 修改客户端插件代码后在设置页一键重启,无需回到终端
- 后台终端或 systemd 守护的 dsh web 进程不方便手动重启
- 插件调试阶段反复重启,省去查找进程和手动操作的开销
适合人员
- dsh 客户端插件开发者
- 日常使用 dsh web 的工程师
- 进程由后台终端或管理服务托管、手动重启不便的用户
