前言¶
DSH(DeepSeek Harness)是基於插件架構的系統,原生未提供進程級的控制能力。在日常運維中,開發者常需要手動重啓宿主進程,或在服務器重啓後自動恢復服務。dsh-restart-autostart 插件通過在設置面板注入控制入口,解決了這一痛點,提供了「重啓」按鈕和「跟隨系統啓動」配置。
核心功能¶
- 標題欄重啓按鈕:在設置面板任意分頁的標題欄左側,提供紅色「重啓」按鈕,無需跳轉至特定頁面。
- 通用自啓配置:在「設置 → 通用」頁面提供「跟隨系統啓動」勾選框,支持寫入系統自啓條目。
- 守護與自動恢復:提供守護進程,負責監控宿主狀態。宿主崩潰後,守護會自動拉起新進程。
安裝與啓用¶
在終端執行以下命令安裝:
dsh plugin --profile web add github:felixpu/dsh-restart-autostart
安裝後重啓宿主進程以生效。
使用方法¶
手動重啓¶
- 打開 DSH 設置面板(任意分頁均可)。
- 點擊標題欄左側、緊挨「打開配置文件」按鈕的紅色「重啓」按鈕。
- 在確認彈窗中確認重啓。此時標題欄下方會顯示進度浮層,展示「正在停止舊服務 → 正在啓動新服務 → 已恢復」的狀態。
前端會輪詢/health接口判斷服務恢復,無需手動刷新頁面。
配置系統自啓¶
- 進入「設置 → 通用」頁面。
- 勾選「跟隨系統啓動」。
- 插件會根據當前操作系統寫入對應的自啓條目:
- macOS:launchd(Label:com.dsh.restartautostart.<port>)
- Linux:systemd用戶級服務 (Unit:dsh-restart-autostart-<port>.service)
- Windows: 系統服務
接口調用¶
若需通過腳本控制,可調用 POST 接口:
curl -X POST http://localhost:PORT/dsh-restart-autostart/restart
注意事項¶
- 重啓影響:重啓會中斷所有正在進行的會話與後臺任務。
- Linux 依賴:Linux 上必須開啓
systemd linger才能在無人登錄時拉起守護。非systemd發行版(如 Alpine 使用 OpenRC)不可用。 - 數據遷移:該插件爲舊包
dsh-restart的重命名版本。從舊名升級時,舊數據(目錄、路由、配置)不會自動遷移,需手動清理舊條目與舊目錄。 - 啓動互斥:手動重啓與守護進程在宿主重啓的 10 秒空窗期內會嘗試競爭端口。插件通過
logs/starting-<port>.lock鎖文件機制確保只有一個實例成功綁定端口,另一實例會報錯退出。
附錄¶
- 數據落盤:
~/.dsh-restart-autostart/ - GitHub 倉庫: https://github.com/felixpu/dsh-restart-autostart