dsh-shutdown-after-task:任务完成后自动关机插件(Windows)

前言

在 DeepSeek Harness(DSH)中运行长任务(如批量迁移、模型生成、过夜任务)时,经常会忘记关机。dsh-shutdown-after-task 插件提供了一种通过右下角按钮触发自动关机的方法,解决了这一痛点。该插件由用户 virggle 维护,是 DeepSeek Harness 生态中的一个零依赖、纯配置层插件。

核心功能

  • 右下角浮动文本按钮(可拖动):点击切换「任务完成后关机」模式(默认关闭)。按钮位置可拖动,位置自动保存。
  • 自动避让:当其他插件的角落弹窗(如价格提示)与按钮重叠时,按钮会自动避让,弹窗消失后归位。
  • 可取消倒计时:任务成功完成后,弹出 60 秒倒计时横幅(实时显示剩余秒数)和「取消关机」按钮。倒计时期间可通过 GUI 取消。
  • 新任务打断:倒计时期间任一会话开始新任务,会自动撤消关机指令,但模式保持开启。
  • 取消即退出:点击「取消关机」按钮,不仅取消本次关机,还会退出该模式(下个任务不再触发)。
  • 仅成功时关机:配置为仅成功时关机;若本批次有会话出错,则不关机并提示原因。
  • 多会话判定:以 root 会话为统计单位,全部 root 会话空闲才算任务完成。

安装与启用

通过官方目录安装:

dsh plugin --profile web add dsh-shutdown-after-task

安装后重启 DSH。若右下角未出现按钮,刷新页面(Ctrl+R)即可。

配置

编辑 profile 的 cordis.patch.yml(或设置 > 插件配置):

- id: dsh-shutdown-after-task
  config:
    countdownSec: 60      # 倒计时秒数(10–600,默认 60)
    marginSec: 5          # 系统 shutdown /t 额外余量(0–60,默认 5)
    onlyOnSuccess: true   # 仅成功时关机(false = 完成即关,含出错)

典型用法

  1. 点击右下角「任务完成后关机」按钮,按钮变黄表示已开启模式。
  2. 正常跑任务。
  3. 当全部 root 会话空闲且无错误时,按钮上方会弹出倒计时横幅。
  4. 倒计时内点击「取消关机」按钮,本次关机取消,模式退出。

工作原理与细节

  • 触发时机:模式开启后,全部 root 会话从 running 状态回到 idle 状态。
  • 成功判定:本批次无 agent/error(仅在 onlyOnSuccess: true 时生效)。
  • 系统指令:倒计时开始时执行 shutdown /s /t <countdownSec + marginSec>。
  • 日志路径:运行日志记录在 $DSH_HOME/dsh-shutdown-after-task.log。
  • 状态查询:可通过 GET http://127.0.0.1:<port>/api/dsh-shutdown-after-task/state 查询当前状态。

注意事项

  • 仅支持 Windows:插件执行 shutdown.exe,其他平台插件会保持惰性并记日志。
  • 内存状态:模式状态保存在内存中,DSH 重启后默认关闭,需重新点击按钮开启。
  • inbox 队列判定:root 会话空闲但 inbox 有排队消息时也会触发关机(按「全部 root 空闲」判定)。
  • 页面刷新:脚本随 index 响应注入,安装后需刷新页面才能看到按钮。

总结

dsh-shutdown-after-task 适合需要在过夜任务或长时间批量任务结束后自动关闭电脑的场景。它通过 GUI 提供了直观的控制,同时支持配置项以适应不同的关机策略。更多细节可参考:GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜