restart-bell:DSH Web GUI 一鍵重啓與關閉(無控制台黑窗)

前言

在 DeepSeek Harness(DSH)裏改插件或改配置,往往要等進程完全退出再手動打開桌面端,改動纔會真正生效。習慣用任務管理器或命令行殺進程的人還要面對子進程、單實例鎖和隨機端口等問題;早期用腳本輔助重啓時,分離啓動 cmd.exe 還容易彈出命令行黑窗。restart-bell(重啓鈴)是維護者 zhaoyushuo987 提交的客戶端類 DSH 插件:在 Web GUI 頂部增加一個可拖動的 ⟳ 按鈕,點開後在列表裏選「重啓」或「關閉」,由本機助手完成強殺與可選拉起,全程不彈出控制台窗口。下面按定位、功能、安裝、用法和注意事項說明。

這是什麼

restart-bell 只做一件事:在 DSH Web 界面標題欄區域放一個 ⟳ 小圓鈕(默認左上角,按住可拖動,位置會記住)。單擊後彈出小列表,提供「重啓」與「關閉」兩個操作。插件歸類爲客戶端(dsh.client.platform 爲 web),當前資料中的版本爲 0.4.0,許可證 MIT,面向 Windows 10 / 11。倉庫與說明見 GitHub;社區目錄頁爲 skillhub.cn/plugins/zhaoyushuo987/restart-bell。DSH 生態採用「一切皆插件」思路,該目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。

核心功能

界面與交互

  1. 裝好後首次加載時,DSH 會自動重啓一次,以便插件生效。
  2. 在窗口左上角(標題欄區域)可見 ⟳ 按鈕;按住可拖到頂部任意位置。
  3. 單擊 ⟳ 彈出列表;選「重啓」或「關閉」。點空白處或按 Esc 收起列表。

「重啓」與「關閉」分別做什麼

按鈕 作用
重啓 強制關閉整個 DSH,再用同一個 DeepSeek Harness.exe 原樣重新啓動(便於裝完插件或改完配置後立即生效)
關閉 只強制關閉整個 DSH,不重新打開(徹底退出、釋放內存時使用)

實現要點(便於理解行爲)

  • 列表爲前端 DOM,重啓/關閉通過向本機 GUI 服務 POST 觸發,請求頭帶 x-restart-bell,路由爲 POST /api/restart-bell/restart 與 POST /api/restart-bell/quit。
  • 宿主先返回 200,再在 %TEMP%\restart-bell\ 下寫入 VBS 助手,用 wscript.exe 分離運行(GUI 子系統,不出現控制台黑窗)。v0.3.0 起棄用會彈黑窗的 cmd.exe 方案。
  • 助手先按配置的 delayMs(默認 1200ms)等待,再強殺主進程並清理同名進程,重啓前會清除 ELECTRON_RUN_AS_NODE 等環境變量,避免 exe 以 Node 模式空跑後立刻退出(v0.3.1 修復的問題)。拉起後會覈對新進程是否存活,失敗則用 explorer.exe 兜底。
  • 可選配置:delayMs(觸發到強殺的緩衝,默認 1200)、enabled: false 可整體停用插件邏輯。

安裝與啓用

插件以 link 方式掛到 profile 的 node_modules(本機可用 junction 指向源碼目錄,改源碼後重啓即生效)。安裝前請自行查看倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,需有結束本機 DSH 進程的能力。

普通 profile(命令行可管理)

在已取得 restart-bell 源碼目錄的前提下執行:

dsh plugin --profile <profile 名> add link:<源碼目錄路徑>

將 <profile 名> 與 <源碼目錄路徑> 換成你的實際值。

桌面 App 的 profile(默認名 desktop)

該 profile 由 Electron 應用獨佔,命令行 add/remove 可能被拒絕(提示 profile "desktop" is managed exclusively by the Electron application)。可任選其一:

  1. 在 App 內插件管理界面添加;或
  2. 手動修改 package.json 並在 profiles\desktop\node_modules 建 junction,例如資料中的示例命令:
dsh plugin --profile desktop add link:C:\Users\86158\Documents\deepseek-harness\restart-bell

卸載示例:

dsh plugin --profile desktop remove restart-bell

手動改 desktop profile 時,資料要求:在 <用戶目錄>\.dsh\profiles\desktop\package.json 的 dependencies 增加 "restart-bell": "link:C:/路徑/restart-bell",在 dsh.profile.bundles 增加 "restart-bell";在 profiles\desktop\node_modules 下建 junction 指向源碼目錄,例如:

New-Item -ItemType Junction -Path .\restart-bell -Target C:\路徑\restart-bell

完成後重啓一次 DSH,左上角應出現 ⟳ 按鈕。

典型用法

經過上面的安裝與一次重啓,日常使用可按下面三步:

  1. 確認 ⟳ 按鈕位置(需要時可拖動到習慣的位置)。
  2. 改完插件或配置需要立即生效時:單擊 ⟳ →「重啓」,等待進程下線再回來(桌面端本窗口會一起結束;若用瀏覽器打開 GUI,前端會等 ping 失敗後再等 ping 成功才刷新,超時會有文案提示)。
  3. 僅想退出 DSH:單擊 ⟳ →「關閉」。

適用場景與注意

適合誰: 主要在 Windows 上使用 DSH 桌面端、經常安裝或調整插件、又不想每次用手動殺進程或記命令的人。

平臺: README 標明平臺爲 Windows 10 / 11;未在其他系統上驗證的行爲不要假設可用。

瀏覽器 / 遠程看 GUI: 點「重啓」時桌面窗口會結束;純瀏覽器標籤在 DSH 下線後需等待服務起來再刷新。桌面端若使用 --port 0 隨機端口,舊標籤頁可能無法自動連回,資料中會提示手動重新打開 DSH。

排障: 關不掉或起不來時,查看 %TEMP%\restart-bell\helper.log(每條帶本地時間戳)。常見線索包括:僅有 start(WScript 未執行)、relaunch failed、no process after launch; retry via explorer 等;完整對照表見倉庫 README。

反饋: 問題可發到 Issues,附上 helper.log 尾部幾行。

結尾

restart-bell 在 Web GUI 頂部提供可拖動的 ⟳ 入口,用「重啓」「關閉」覆蓋改配置後生效與徹底退出兩類需求,並通過 VBS + wscript 避免控制台黑窗。安裝以 profile 的 link: 方式爲準;詳情與版本以倉庫爲準。

  • 目錄頁:https://www.skillhub.cn/plugins/zhaoyushuo987/restart-bell
  • GitHub:https://github.com/zhaoyushuo987/restart-bell
羽毛球分组比赛记分
小程序二维码

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

小夜