dsh-restart:DSH Web 一鍵重啓插件

前言

DeepSeek Harness(DSH)採用“一切皆插件”的架構。開發者在安裝或更新插件後,通常需要重啓 dsh web 服務才能使新插件生效。在命令行中手動執行重啓操作會中斷當前工作流。dsh-restart 插件旨在解決這一痛點,將重啓操作封裝爲設置頁中的一個入口,實現無需命令行的界面化重啓。

插件概覽

這是一個由 zhouchengke2046 維護的獨立插件,隸屬於 admin-security 分類。它不包含任何餘額或用量管理功能,僅負責在設置頁提供“重啓 dsh”的入口。該插件遵循 MIT 許可證,支持單獨安裝與卸載。

核心功能

  1. 零依賴與安全性:插件本身零依賴、零耦合,安裝後可單獨卸載。它不讀取任何密鑰或敏感信息,僅作爲系統管理工具運行。
  2. 原生 UI 適配:插件原生適配 DSH 的設計令牌(--dsw-alias-*),在深淺主題下均可正常顯示。
  3. 可靠重啓機制:
    • 首先嚐試使用 launchctl kickstart 觸發服務重啓。
    • 若觸發失敗,提供兜底方案(具體邏輯見配置)。
    • 利用 launchd 的 KeepAlive 機制確保服務被拉起。
  4. 自動恢復:用戶確認重啓後,插件會輪詢服務狀態,一旦服務恢復,頁面自動刷新。
  5. 可觀測性:重啓操作的執行痕跡記錄在 /tmp/dsh-restart.log,便於排查問題。

安裝與配置

安裝

在終端執行以下命令,將插件添加到 Web 配置文件中:

dsh plugin --profile web add github:zhouchengke2046/dsh-restart

若需從本地路徑安裝,可使用:

dsh plugin --profile web add /path/to/dsh-restart

安裝完成後,需重啓 dsh web 進程。

配置項

插件支持通過 cordis.patch.yml 覆蓋默認行爲。主要配置項如下:

鍵 默認值 說明
restartEnabled true 是否註冊重啓路由。設置爲 false 可禁用此功能。
restartCommand "" 覆蓋重啓命令。留空時,系統默認使用 launchctl kickstart -k gui/<uid>/<label>。
restartLabel com.dsh.web launchd agent 的標籤,用於指定重啓目標服務。
restartDelayMs 600 用戶點擊確認後,延遲執行的毫秒數。

配置示例(覆蓋默認行爲):

- insert:
    - id: dsh-restart
      name: dsh-restart
      config:
        restartEnabled: true
        restartLabel: com.dsh.web

使用方法

  1. 確保已安裝插件並重啓了 dsh web。
  2. 在 Web 界面打開 設置 頁面。
  3. 找到並點擊 重啓 dsh 按鈕。
  4. 在彈出的確認框中點擊確認。
  5. 插件將執行重啓操作,服務恢復後會自動刷新頁面。

注意事項

  • 運行環境:插件依賴 Node.js 環境,要求 >= 18。
  • 權限說明:插件以當前 dsh web 進程的權限運行,因此必須確保當前用戶有權限執行 launchctl 相關命令。
  • 代碼審查:鑑於插件涉及系統服務重啓,建議在安裝前檢查其 GitHub 源碼與許可證,確保符合本地安全規範。

結語

dsh-restart 通過在設置頁集成重啓邏輯,簡化了 DSH 插件開發後的服務維護流程。對於頻繁進行插件調試或更新的開發者而言,該插件能有效減少命令行操作,提升開發體驗。

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

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

小夜