DSH Web 支持運行多個實例,管理本機的多個實例需要清晰的視圖來查看狀態、啓動新實例或停止現有實例。dsh-instance-manager 是 DSH Web 的實例管理器,負責這些操作。
它由 xswt442-cmd 維護,採用 MIT 許可證。
安裝與啓用¶
使用以下命令安裝並註冊插件到 web profile:
dsh plugin --profile web add dsh-instance-manager
這一步會完成 npm 包的安裝與 profile 的註冊。安裝後重啓 DSH Web 生效。注意,單獨執行 npm install 僅安裝 package,不啓用插件。
核心功能¶
- 狀態顯示:爲每個實例顯示一行信息,包括端口、PID、運行時長、會話數、常駐內存與版本。當前實例排在第一行。
- 啓動新實例:端口留空時,取起始端口段內第一個空閒端口。如果指定端口已被佔用,直接報錯,不會嘗試其他端口。
- 停止實例:支持單個實例停止、停止當前實例或停止全部本地實例。遠程實例行是隻讀的,不參與 stop-all 操作。
- 查看視圖:提供每個實例的只讀視圖,包括 stdout/stderr 日誌、會話概要以及該實例正在運行的內容。
- 遠程實例:配置 peer 列表後,可以在面板中查看遠程機器上的實例及其日誌與會話。
- Agent 工具:提供命令行工具
instance_list、instance_start、instance_stop、instance_logs和instance_sessions。
入口與配置¶
面板入口位於工作區左下、側邊欄右側的菜單圖標。
插件支持通過配置節 live 和 startup 進行設置。
- live:包含刷新間隔 (
refreshIntervalMs)、Fleet token (fleetToken) 和 peer 列表 (peers)。修改此節通常即時生效。 - startup:包含端口清單 (
portRange)。此節applies: 'restart',僅在重啓時讀取,未生效的修改在設置界面標爲待生效。
默認端口段爲 '3080-3129,19387'。
環境變量也可用於配置:
$env:DSHIM_REFRESH_INTERVAL_MS = '4000'
$env:DSHIM_FLEET_TOKEN = '<secret>'
$env:DSHIM_PEERS = 'id@origin'
$env:DSHIM_PORT_RANGE = '3080-3129,19387'
注意事項¶
- 權限安全:Fleet token 沒有操作級權限劃分,持有者可以啓動或停止本機實例並讀取會話信息。因此,應僅將 token 授予可信設備。
- 端口衝突:啓動時如果指定端口被佔用,插件會報錯,不會自動切換到其他端口。
- 遠程限制:遠程實例在面板中是隻讀的,無法在面板中直接停止它們,只能通過 Agent 工具操作。