前言¶
DSH(DeepSeek Harness)是基于插件架构的系统,原生未提供进程级的控制能力。在日常运维中,开发者常需要手动重启宿主进程,或在服务器重启后自动恢复服务。dsh-restart-autostart 插件通过在设置面板注入控制入口,解决了这一痛点,提供了「重启」按钮和「跟随系统启动」配置。
核心功能¶
- 标题栏重启按钮:在设置面板任意分页的标题栏左侧,提供红色「重启」按钮,无需跳转至特定页面。
- 通用自启配置:在「设置 → 通用」页面提供「跟随系统启动」勾选框,支持写入系统自启条目。
- 守护与自动恢复:提供守护进程,负责监控宿主状态。宿主崩溃后,守护会自动拉起新进程。
安装与启用¶
在终端执行以下命令安装:
dsh plugin --profile web add github:felixpu/dsh-restart-autostart
安装后重启宿主进程以生效。
使用方法¶
手动重启¶
- 打开 DSH 设置面板(任意分页均可)。
- 点击标题栏左侧、紧挨「打开配置文件」按钮的红色「重启」按钮。
- 在确认弹窗中确认重启。此时标题栏下方会显示进度浮层,展示「正在停止旧服务 → 正在启动新服务 → 已恢复」的状态。
前端会轮询/health接口判断服务恢复,无需手动刷新页面。
配置系统自启¶
- 进入「设置 → 通用」页面。
- 勾选「跟随系统启动」。
- 插件会根据当前操作系统写入对应的自启条目:
- macOS:launchd(Label:com.dsh.restartautostart.<port>)
- Linux:systemd用户级服务 (Unit:dsh-restart-autostart-<port>.service)
- Windows: 系统服务
接口调用¶
若需通过脚本控制,可调用 POST 接口:
curl -X POST http://localhost:PORT/dsh-restart-autostart/restart
注意事项¶
- 重启影响:重启会中断所有正在进行的会话与后台任务。
- Linux 依赖:Linux 上必须开启
systemd linger才能在无人登录时拉起守护。非systemd发行版(如 Alpine 使用 OpenRC)不可用。 - 数据迁移:该插件为旧包
dsh-restart的重命名版本。从旧名升级时,旧数据(目录、路由、配置)不会自动迁移,需手动清理旧条目与旧目录。 - 启动互斥:手动重启与守护进程在宿主重启的 10 秒空窗期内会尝试竞争端口。插件通过
logs/starting-<port>.lock锁文件机制确保只有一个实例成功绑定端口,另一实例会报错退出。
附录¶
- 数据落盘:
~/.dsh-restart-autostart/ - GitHub 仓库: https://github.com/felixpu/dsh-restart-autostart