前言¶
在 DeepSeek Harness(DSH)裏改插件、調配置或長時間跑任務時,常常需要整進程重啓才能生效。直接在插件進程裏調用類似 app.relaunch() 的做法,往往無法乾淨地結束當前 DSH 再拉起新實例——插件本身跑在 DSH 進程內,很難扮演「先殺再起」的執行者。下面介紹社區插件 dsh-restar(倉庫名 dsh-restar,界面品牌 DS_RESTAR):用倒計時、前端卡片和進程外看守程序,把「說一句重啓 → 等倒計時 → 自動結束並重啓 → 窗口回前臺」做成可撤銷的一整套流程。
這是什麼¶
DS_RESTAR 是維護者 a1422398302aa-hash 發佈的 DSH 客戶端類插件。一句話定位:給 DeepSeek Harness 用的「自助重啓」小部件——排倒計時,時間到了由獨立 Node 看守進程結束 DSH、等待空檔、再啓動,用戶只需對助手說「重啓」或點卡片上的按鈕。
整體流水線(資料原文):
倒計時 → 結束進程 → 空檔 30s → 重新啓動 → 窗口回到前臺 → 看守進程自行退出
架構:爲什麼拆成「插件 + 看守進程」¶
| 角色 | 位置 | 職責 |
|---|---|---|
dsh-restar(本插件) |
DSH 進程內 | 下單(寫排期文件)、查單、提供工具和前端卡片 |
| DS_RESTAR 看守進程 | 獨立 node 進程 | 執行 kill / 等待 / start,並驗證新進程是否存活 |
看守進程由 WMI 拉起,父進程是 WmiPrvSE.exe,不在 DSH 的 job object 裏——否則 taskkill /F 會把看守一起帶走(README 中說明爲第一版踩過的坑)。存活判據只看進程名,不把 DSH 端口當作依據(port 保持 0;第二版踩過的坑)。
核心功能¶
助手與工具¶
對助手說:
- 「重啓一下」→ 調用
dsh_restart,默認 60 秒後執行 - 「90 秒後重啓,我要保存東西」→ 使用
delaySec: 90 - 「別重啓了」→
dsh_restart_cancel,或直接點卡片上的紅色按鈕
註冊的工具(README 表格):
| 工具 | 作用 |
|---|---|
dsh_restart(delaySec?, reason?) |
排一次重啓,返回時間線 |
dsh_restart_status() |
還有多久、看守進程在不在、上次花了多久、最近日誌 |
dsh_restart_cancel() |
撤銷:刪排期 + 結束看守進程 + 撤掉兜底任務 |
屏幕上的倒計時卡片¶
有排期時,輸入框上方會出現一張卡片:
- 文案「DS_RESTAR 即將重啓」+ 大號
mm:ss倒計時 - 進度條按「排期時刻 → 觸發時刻」推進;最後 10 秒整體轉紅
- 底行顯示看守進程狀態,右側紅色 取消重啓 按鈕
- 沒有排期時卡片不存在(
display:none),也不攔截點擊(pointer-events:none,按鈕除外)
配置與安全邊界¶
插件側(DSH 插件設置):
| 鍵 | 默認 | 說明 |
|---|---|---|
watchdogRoot |
%USERPROFILE%\.dsh\dsh-restar |
看守程序運行目錄 |
defaultDelaySec |
60 | 默認倒計時 |
defaultGapSec |
30 | 殺完到重啓的空檔(展示用;實際空檔在 config.json 的 timing.killGapMs) |
首次執行重啓時,插件會把自帶的 watchdog/ 目錄鋪到 %USERPROFILE%\.dsh\dsh-restar,並生成指向當前 DSH 的 config.json,無需另外克隆倉庫。
看守程序 config.json 中還包含應用路徑、時序(如 killGapMs: 30000)、可選目錄監聽自動重啓、重啓前 sync 等字段;詳見倉庫 README。
安全邊界(資料原文要點):
- 只在本機操作,只結束
imageName匹配的進程 - 排期文件是唯一事實來源;撤銷即刪除排期
- 看守在重啓成功後會自行退出;失敗時不退出,保留兜底計劃任務
DS-Watchdog-Fallback,5 分鐘後嘗試補拉一次
安裝與啓用¶
環境要求:Windows(使用 taskkill / schtasks / explorer.exe 相關行爲),Node 20+。
官方安裝命令(README 原文,請將佔位替換爲倉庫地址或本地路徑):
dsh plugin add <本倉庫地址或本地路徑>
社區目錄頁:https://www.skillhub.cn/plugins/a1422398302aa-hash/dsh-restar
源碼與說明:https://github.com/a1422398302aa-hash/dsh-restar
安裝前請自行查看倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,涉及結束本機進程與計劃任務,僅在可信環境中使用。
典型用法小結¶
- 用上述
dsh plugin add安裝插件並啓用客戶端注入(package.json中dsh.client.platform爲web,immediately: true)。 - 需要對 DSH 整進程重啓時,對助手說明延遲秒數或直接說「重啓一下」。
- 在卡片上確認倒計時;若要放棄,點 取消重啓 或說「別重啓了」。
- 需要排查時用
dsh_restart_status()查看剩餘時間、看守狀態與日誌。
適用場景與注意¶
適合:在 Windows 上長期用 DSH、頻繁改插件或配置、希望可撤銷的延遲重啓而不是手動關進程再點開客戶端的開發者。
務必注意:
- 僅 Windows;Linux/macOS 不在 README 支持範圍內。
- 插件與看守程序會結束名爲
DeepSeek Harness.exe(可配置imageName)的進程,安裝前確認配置與源碼。 - SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係;星標與版本以 GitHub 頁面爲準(資料中
package.json版本爲 0.3.0)。
結尾¶
DS_RESTAR 把「重啓 DSH」從進程內做不到的 relaunch,拆成插件下單 + 進程外看守執行,並用卡片和取消按鈕把風險控在可見倒計時之內。若你需要在 Harness 生態裏找同類能力,可在社區目錄檢索 dsh-restar,或打開 GitHub 倉庫閱讀 watchdog/ 與 lib/ 的實現細節。