blocklet server stop 命令会优雅地关闭正在运行的 Blocklet Server 实例。此过程包括停止所有正在运行的 blocklet、路由引擎、核心服务器进程以及任何关联的 Docker 容器。
用法
基本用法
blocklet server stop [options]优雅停机流程
默认情况下,运行 blocklet server stop 会启动一个顺序关闭过程,以确保所有服务都能干净地终止并防止数据损坏。服务器有 5 分钟的超时时间来完成此过程。
下图说明了该流程:

优雅停机的关键步骤如下:
检查开发模式的 Blocklet
服务器首先检查是否有任何 blocklet 正在以开发模式运行。如果有,停止命令将失败,您必须先手动停止开发过程。
通知客户端
广播
NODE_STOPPED事件,以通知任何连接的 Web 仪表板用户即将关闭。停止路由引擎
服务器的路由引擎被停止。
停止 Blocklet
每个正在运行的 blocklet 都被单独停止。
停止核心进程
由 PM2 管理的主要 Blocklet Server 进程(
daemon、service、event-hub)被终止。停止 Docker 容器
由 Blocklet Server 管理的任何 Docker 容器都将被停止。
更新状态
服务器的状态更新为
STOPPED。
选项
| 选项 | 描述 |
|---|---|
--force | 强制停止所有与 Blocklet Server 相关的进程。此选项会绕过优雅停机序列,应在服务器无法正常停止时使用。 |
强制停止
使用 --force 标志会启动一个更激进的关闭过程,超时时间为 20 秒。此过程将:
- 立即清除所有路由器配置和缓存。
- 直接终止与 Blocklet Server 和任何 blocklet 相关的所有 PM2 进程。
- 终止 PM2 主守护进程本身。
- 停止任何受管的 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