y2zyyr/dsh-restart-control:DSH 桌面與 Web 模式的官方優雅重啓

在使用 DSH Desktop 或 dsh --profile web 時,應用卡死或需要重置服務狀態是常見場景。在桌面端,通常需要關閉窗口或使用終端命令;在 Web 模式下,重啓進程往往涉及手動操作。這個插件通過 DSH 的官方接口,在設置頁面提供了一鍵重啓能力,無需 Shell 權限。

這是一個 DSH 插件,由用戶 y2zyyr 維護。它的核心作用是在 DSH Desktop 的「通用設置」中插入一個「Restart DSH」按鈕,利用 DSH 官方的優雅重啓機制,支持桌面和純 Web 模式下的進程重啓。

核心功能

  • 通用設置集成:在 Settings → General 中註冊官方 slot settings.general.item,提供原生確認對話框和單次飛行保護(按鈕禁用)。
  • 桌面模式重啓:調用 ctx.desktopRuntime.requestRestart(),執行優雅的 Cordis teardown,隨後 app.relaunch() + app.exit(0)。
  • Web 模式重啓:生成分離的啓動器,自身發送 SIGTERM 信號,觸發 CLI 內置處理器的優雅銷燬邏輯,等待舊進程結束後重新執行 argv 和 cwd。
  • 安全與隱私:不執行 shell 命令(如 kill/pkill),僅通過迴環 HTTP 路由通信,不讀取憑證或進行遙測。

安裝與啓用

  1. 編輯 ~/.dsh/profiles/web/package.json,在 dependencies 中添加:
   "@y2zyyr/dsh-restart-control": "link:/path/to/dsh-restart-control"
  1. 將 @y2zyyr/dsh-restart-control 加入 dsh.profile.bundles。
  2. 在配置文件目錄運行 pnpm install。
  3. 重啓 DSH Desktop 以激活新插件。

注意:DSH Desktop ≥ 2.0.2 要求依賴鍵名必須精確匹配包名 @y2zyyr/dsh-restart-control。

典型用法

打開設置頁,點擊按鈕確認即可;可通過 GET /dsh-restart-control/status 查看狀態 { ok, restartable, mode }。

適用場景與注意

  • 桌面模式:需在 compatibility 或 advanced 模式下運行,提供 desktopRuntime 服務。
  • Web 模式:重啓服務器進程本身,依賴真實 Node 主機進程;若啓動器失敗,路由返回 500。
  • 依賴版本:DSH 核心包需爲 ^0.1.0-rc.6。

該插件以 MIT 協議開源,專注於提供無侵入、安全的重啓體驗。更多細節可參考 目錄頁 或 GitHub 倉庫。

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

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

小夜