dsh-restart-autostart:DSH 进程控制插件

前言

DSH(DeepSeek Harness)是基于插件架构的系统,原生未提供进程级的控制能力。在日常运维中,开发者常需要手动重启宿主进程,或在服务器重启后自动恢复服务。dsh-restart-autostart 插件通过在设置面板注入控制入口,解决了这一痛点,提供了「重启」按钮和「跟随系统启动」配置。

核心功能

  1. 标题栏重启按钮:在设置面板任意分页的标题栏左侧,提供红色「重启」按钮,无需跳转至特定页面。
  2. 通用自启配置:在「设置 → 通用」页面提供「跟随系统启动」勾选框,支持写入系统自启条目。
  3. 守护与自动恢复:提供守护进程,负责监控宿主状态。宿主崩溃后,守护会自动拉起新进程。

安装与启用

在终端执行以下命令安装:

dsh plugin --profile web add github:felixpu/dsh-restart-autostart

安装后重启宿主进程以生效。

使用方法

手动重启

  1. 打开 DSH 设置面板(任意分页均可)。
  2. 点击标题栏左侧、紧挨「打开配置文件」按钮的红色「重启」按钮。
  3. 在确认弹窗中确认重启。此时标题栏下方会显示进度浮层,展示「正在停止旧服务 → 正在启动新服务 → 已恢复」的状态。
    前端会轮询 /health 接口判断服务恢复,无需手动刷新页面。

配置系统自启

  1. 进入「设置 → 通用」页面。
  2. 勾选「跟随系统启动」。
  3. 插件会根据当前操作系统写入对应的自启条目:
    - 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

注意事项

  1. 重启影响:重启会中断所有正在进行的会话与后台任务。
  2. Linux 依赖:Linux 上必须开启 systemd linger 才能在无人登录时拉起守护。非 systemd 发行版(如 Alpine 使用 OpenRC)不可用。
  3. 数据迁移:该插件为旧包 dsh-restart 的重命名版本。从旧名升级时,旧数据(目录、路由、配置)不会自动迁移,需手动清理旧条目与旧目录。
  4. 启动互斥:手动重启与守护进程在宿主重启的 10 秒空窗期内会尝试竞争端口。插件通过 logs/starting-<port>.lock 锁文件机制确保只有一个实例成功绑定端口,另一实例会报错退出。

附录

  • 数据落盘: ~/.dsh-restart-autostart/
  • GitHub 仓库: https://github.com/felixpu/dsh-restart-autostart
羽毛球分组比赛记分
小程序二维码

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

小夜