前言¶
DeepSeek Harness(DSH)採用“一切皆插件”的架構。開發者在安裝或更新插件後,通常需要重啓 dsh web 服務才能使新插件生效。在命令行中手動執行重啓操作會中斷當前工作流。dsh-restart 插件旨在解決這一痛點,將重啓操作封裝爲設置頁中的一個入口,實現無需命令行的界面化重啓。
插件概覽¶
這是一個由 zhouchengke2046 維護的獨立插件,隸屬於 admin-security 分類。它不包含任何餘額或用量管理功能,僅負責在設置頁提供“重啓 dsh”的入口。該插件遵循 MIT 許可證,支持單獨安裝與卸載。
核心功能¶
- 零依賴與安全性:插件本身零依賴、零耦合,安裝後可單獨卸載。它不讀取任何密鑰或敏感信息,僅作爲系統管理工具運行。
- 原生 UI 適配:插件原生適配 DSH 的設計令牌(
--dsw-alias-*),在深淺主題下均可正常顯示。 - 可靠重啓機制:
- 首先嚐試使用
launchctl kickstart觸發服務重啓。 - 若觸發失敗,提供兜底方案(具體邏輯見配置)。
- 利用 launchd 的
KeepAlive機制確保服務被拉起。
- 首先嚐試使用
- 自動恢復:用戶確認重啓後,插件會輪詢服務狀態,一旦服務恢復,頁面自動刷新。
- 可觀測性:重啓操作的執行痕跡記錄在
/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
使用方法¶
- 確保已安裝插件並重啓了
dsh web。 - 在 Web 界面打開 設置 頁面。
- 找到並點擊 重啓 dsh 按鈕。
- 在彈出的確認框中點擊確認。
- 插件將執行重啓操作,服務恢復後會自動刷新頁面。
注意事項¶
- 運行環境:插件依賴 Node.js 環境,要求
>= 18。 - 權限說明:插件以當前
dsh web進程的權限運行,因此必須確保當前用戶有權限執行launchctl相關命令。 - 代碼審查:鑑於插件涉及系統服務重啓,建議在安裝前檢查其 GitHub 源碼與許可證,確保符合本地安全規範。
結語¶
dsh-restart 通過在設置頁集成重啓邏輯,簡化了 DSH 插件開發後的服務維護流程。對於頻繁進行插件調試或更新的開發者而言,該插件能有效減少命令行操作,提升開發體驗。