blocklet server stop 指令會優雅地關閉執行中的 Blocklet Server 實例。此過程包括停止所有執行中的 blocklet、路由引擎、核心伺服器進程以及任何相關的 Docker 容器。
用法
基本用法
blocklet server stop [options]優雅關閉程序
預設情況下,執行 blocklet server stop 會啟動一個循序關閉程序,以確保所有服務都能乾淨地終止並防止資料損毀。伺服器為此程序設定了 5 分鐘的逾時限制。
這是一個說明流程的圖表:

優雅關閉的關鍵步驟如下:
檢查開發模式的 Blocklet
伺服器首先會檢查是否有任何 blocklet 在開發模式下執行。若有,停止指令將會失敗,您必須先手動停止開發程序。
通知客戶端
廣播一個
NODE_STOPPED事件,以通知任何已連線的網頁儀表板使用者即將關機。停止路由引擎
停止伺服器的路由引擎。
停止 Blocklet
逐一停止每個執行中的 blocklet。
停止核心進程
終止由 PM2 管理的主要 Blocklet Server 進程(
daemon、service、event-hub)。停止 Docker 容器
停止由 Blocklet Server 管理的任何 Docker 容器。
更新狀態
將伺服器的狀態更新為
STOPPED。
選項
| 選項 | 說明 |
|---|---|
--force | 強制停止所有與 Blocklet Server 相關的進程。此選項會繞過優雅關閉的程序,適用於伺服器無法正常停止的情況。 |
強制停止
使用 --force 旗標會啟動一個更具侵略性的關閉程序,逾時時間為 20 秒。此程序將會:
- 立即清除所有路由器的設定和快取。
- 直接終止所有與 Blocklet Server 和任何 blocklet 相關的 PM2 進程。
- 終止主要的 PM2 daemon 本身。
- 停止任何受管理的 Docker 容器。
當伺服器變得無回應且優雅停止指令逾時,建議使用此解決方案。
範例
標準優雅停止
若要執行標準的伺服器優雅關閉:
基本停止指令
blocklet server stop您將會看到指示每個元件成功關閉的輸出:
預期輸出
Sending shutdown notification to web dashboard users ✔
Routing engine is stopped successfully ✔
Blocklet My-Blocklet is stopped successfully ✔
...
daemon is stopped successfully ✔
service is stopped successfully ✔
event-hub is stopped successfully ✔
Docker containers managed by blocklet server are stopped ✔
Done! ✔強制停止伺服器
如果伺服器無回應或優雅停止失敗,請使用 --force 旗標。
強制停止指令
blocklet server stop --force此指令將會嘗試直接停止所有相關進程。
強制停止的預期輸出
nginx router is stopped successfully ✔
All blocklet processes stopped successfully ✔
Docker containers managed by blocklet server are stopped ✔疑難排解
開發模式中的 Blocklet
如果您有 blocklet 在開發模式下執行(使用 blocklet dev),blocklet server stop 指令將會失敗,並顯示類似以下的訊息:
開發模式錯誤訊息
Unable to stop Blocklet Server, please stop the development by pressing Ctrl + C in the terminal of my-dev-blocklet您必須前往執行開發程序的終端機,並按下 Ctrl + C 來停止它,然後才能停止主伺服器。
伺服器停止失敗
如果優雅關閉程序耗時過長(預設逾時為 5 分鐘),您將會看到一則錯誤訊息。在這種情況下,您應該使用強制停止指令:
逾時錯誤訊息
Blocklet Server failed to stop within 5 minutes
You can stop blocklet server with blocklet stop --force