在 DSH 的使用過程中,修改插件或配置後需要重啓服務。大多數方案依賴特定的守護進程或手動操作。下面介紹一個插件,它通過一個按鈕在 Web 界面中處理所有場景的重啓邏輯。
這是什麼¶
dsh-restart-anywhere 是由 JoblessJoe 開發的 DSH Web 界面插件。它爲側邊欄“設置”上方添加了一個“重啓 dsh”按鈕,支持 systemd、Docker/Podman/Kubernetes、pm2、supervisord、launchd、終端/tmux 和 Windows。它原地重啓(相同 PID),無需檢測或配置守護進程,並且零運行時依賴。
安裝與啓用¶
- 安裝到你的 DSH Web 配置文件(
web下方是配置文件名;使用支持你的 Web GUI 的配置文件)。從源代碼檢出,使用pnpm dsh代替npx @deepseek-ai/dsh:
npx @deepseek-ai/dsh plugin --profile web add dsh-restart-anywhere
- 需要滿足環境要求:dsh >= 0.2.0 和 Node >= 20。
核心功能¶
- 界面集成:在側邊欄“設置”上方添加“重啓 dsh”按鈕。
- 多環境支持:兼容 systemd、Docker/Podman/Kubernetes、pm2、supervisord、launchd、終端/tmux 和 Windows。
- 原地重啓:在 systemd、容器、pm2 等場景下保持相同的 PID,無需檢測守護進程或配置。
- Agent 工具:Agent 可以調用
dsh_restart工具,配合continue_prompt在重啓後恢復會話。
典型用法¶
- 手動重啓:點擊“重啓 dsh”按鈕並確認。頁面會在服務恢復後自動刷新。
- Agent 重啓:Agent 在安裝或編輯插件後調用
dsh_restart({ continue_prompt })。重啓完成後,Agent 會用提供的文本喚醒會話繼續執行。
注意事項與安全¶
- 登錄要求:重啓路由受
ctx.connection.fetch保護,僅限已登錄用戶。在公開暴露的實例上,未認證請求將返回 401。 - 無 Shell 命令:不使用 shell 命令執行,僅依賴 Node.js API 和
systemd-run(當 dsh 作爲 systemd 服務時)。
該插件通過提供跨平臺、無依賴的原地重啓能力,簡化了 DSH 的運維流程。更多細節請參考 GitHub 倉庫 或 插件目錄。