news 2026/9/27 22:50:47

第 22-3 篇:vllm_mgr.py——进程守护与看门狗

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 22-3 篇:vllm_mgr.py——进程守护与看门狗

上一篇:22-2《/admin API——状态、配置、加载、转换》|下一篇:23-1《国密 SM3——KAT 红线先于实现》

只读验证篇:本文仅板端 --help/status 只读实测;未对运行中的引擎演示 start/stop/kill(诚实边界见文内)

一句话导读:vllm_mgr 进程守护与看门狗:读 start/stop/restart、状态轮询与进程名精确匹配的坑;诚实边界是——本文仅板端只读验证,未对运行中的引擎演示启停操作。

关键词:vllm_mgr、进程守护、看门狗、start/stop、RK3588

admin API 是"手动挡",tools/vllm_mgr.py是"自动挡":一个stdlib-only的进程守护,负责 start/stop/restart、状态页、NPU 自检子进程。这篇读它的进程管理逻辑与"精确匹配进程名"的坑,并交代清楚:守护工具本身只该在部署机上跑,教程的启停实验要由你在自己的板上执行——我们这轮没有对着正在服务的引擎演示 kill。

1. 知识点:看门狗要回答的四个问题

进程守护的本质是四个问题:

  1. 怎么启动?nohup拉起引擎子进程,日志重定向;
  2. 怎么知道它还活着?轮询/health//admin/api/status的 HTTP 状态,而不是只看进程表;
  3. 死了怎么办?按配置自动拉起(或至少让你一条命令 restart);
  4. 停?SIGTERM 优雅停 → 超时 SIGKILL,两级降级。

引擎还有一个特殊的"守护需求":/admin/api/config/save落盘的配置文件是 mgr 的启动依据(vllm_mgr.py第 5–10 行注释:配置由 admin 页写、mgr 按它启停)——这样你在网页上改的配置,重启后依然生效,闭环成立。

2. 对应代码:mgr 的进程语义

tools/vllm_mgr.py头注释(12–25 行)把用法与配置 schema 写得很完整:

usage: vllm_mgr.py [-h] [--serve [SERVE]] [{start,stop,restart,status,selftest,serve}] config schema(由 /admin/api/config/save 写入): { "model_dir": "...", "wmode": "q4", "port": 8080, "threads": 8, "npu": true, ..., "env": {"OMP_NUM_THREADS": "4"} }
  • start/stop/restart:nohup+ 进程表管理,stop 先 SIGTERM 再 SIGKILL(15–17 行注释);
  • selftest:跑--npu-calib子进程并回读结果;
  • serve:一个纯 stdlib 的 HTTP 状态页(默认 8082 端口,ThreadingHTTPServer)——admin 页在引擎关机后靠它知道"守护还活着、可以点启动"。

"进程名精确匹配"的坑(本项目文档与代码反复强调):守护脚本如果用pgrep vllm_kestrel这类宽匹配,很容易把自己的命令行/同名前缀进程算进去(bash -c pkill vllm_kestrel这种自匹配在 Day 11–17 的板端实验里反复出现,退出码被误杀成 -1)。成熟做法是匹配完整可执行路径或精确进程名 + PID 白名单,并在stop前先确认 PID 属于引擎而不是守护自身。

3. 改动后果:工具实测与"不该做什么"

实测口径:板端 RK3588 / 2026-09-07。只做只读实测。

$ python3 tools/vllm_mgr.py --help usage: vllm_mgr.py [-h] [--serve [SERVE]] [{start,stop,restart,status,selftest,serve}] vllm_kestrel supervisor positional arguments: {start,stop,restart,status,selftest,serve} options: -h, --help ... --serve [SERVE] run the HTTP supervisor (default port 8082)

为什么这轮不演示 start/stop:引擎正在为本系列的 HTTP/多模态实验服务(22-2 的uptime_s还在涨)。对着活引擎演示 kill → 拉起,会打断实验且无收益;守护语义的正确验证方式是在独立的部署机上(或专门开一个测试端口实例)执行。留给学员的任务里包含完整步骤。这一节本身想强调的"改动后果"是反面纪律:如果你在共享/生产实例上随手vllm_mgr.py restart,会踩中三类问题——配置没save导致重启后配置回滚、宽匹配误杀守护自身、以及 SIGKILL 时 KV/磁盘状态没落盘(Day 12 的 disk-kv 恢复机制就是为这种断电场景兜底的)。

4. 学员调试任务

A 档(板端动手,需独立实例):

  1. 复制一份引擎与模型配置,用--port 8802起第二个测试实例(不碰生产实例);
  2. 用vllm_mgr.py status看它如何判定"活着"(读源码找它探的是哪个端点/文件);
  3. stop→ 观察日志里的 SIGTERM 收尾输出 →start→status确认拉起;再模拟一次kill -9 <pid>看守护(或手动 restart)如何恢复;
  4. 故意把pgrep匹配改宽(如pgrep -f vllm),复现"误杀守护自身"的坑并记录。

B 档(纯读源码):读vllm_mgr.py的 stop/start 与状态判定,回答:① stop 的 SIGTERM→SIGKILL 两级降级在什么条件下触发、为什么不能只用 SIGKILL?②serve模式的状态页与引擎/admin状态页是什么关系(谁依赖谁)?③ mgr 与/admin/api/config/save的"写配置 → 按配置启动"闭环里,如果配置文件损坏(JSON 解析失败),mgr 会怎么处理——读代码找错误分支。

预期输出:一次在独立实例上完成的 start/stop/restart 闭环日志,外加一张"守护设计四问"的自我检查表。

收尾

本篇源码点名:vllm_mgr.py(进程语义 12–25、stop/start 实现)

开源仓库:Kestrel-LLM (Gitee)(AGPL-3.0-or-later 或商业许可,二选一)

下篇预告:引擎能跑、能服务、能被守护了。Day 23 起进安全专题第一课:国密 SM3——为什么"先有标准答案(KAT 向量)再写实现"是密码学的第一纪律。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/27 22:50:33

一文搞懂网站图标的制作h1优化代码报价单

一文搞懂网站图标的制作h1优化代码报价单 网站做好了没人访问,这大概是每个站长最头疼的事。你花了钱做页面,盯着后台数据,发现流量像死水一样不动,甚至连搜索引擎收录都慢吞吞的。这时候,很多人会忽略一个细节:你的H1标签和图标(Favicon)配合得好不好?别笑,这真不是小事。今天这篇,咱们就一文搞懂网…

作者头像 李华
网站建设 2026/9/27 22:50:20

专注高密网站建设选哪家好

高密网站建设选哪家好?从零搭建到SEO霸屏实战指南 自己不会代码想做网站,却总被各种技术名词劝退?别慌。很多高密本地的老板和项目负责人都卡在这一步:想做个像样的企业官网或商城,怕被外包公司坑,又怕自己从零搭建太折腾。其实,只要搞懂逻辑,专注高密网站建设这事儿没那么复杂。…

作者头像 李华
网站建设 2026/9/27 22:50:18

Dede模板选型指南:从0到1避坑,多少钱才能搞定?

Dede模板选型指南:从0到1避坑,多少钱才能搞定? 域名解析配错了,服务器环境没搭好,网站上线三天打不开,这是多少新手建站时的噩梦。很多人一上来就问 多少钱 ,却没搞懂 Dedecms(织梦)这套老牌 CMS 的技术门槛到底在哪。别急,今天咱们不聊虚的,直接拆解 Dedecms…

作者头像 李华
网站建设 2026/9/27 22:50:07

基于替代数据的信用白户信贷风险评估工具设计与实现

背景 传统信贷风控依赖央行征信报告&#xff0c;但有两类人群被排除在外&#xff1a;1. 信用白户 — 无信贷记录或记录极其稀薄的人群&#xff08;应届毕业生、自由职业者、农村人口&#xff09;2. 新市民 — 刚迁入城市的流动人口如何评估这些人的信用风险&#xff1f;答案是…

作者头像 李华
网站建设 2026/9/27 22:50:05

iOS 27正式推送:Siri AI英文先行,开发者该盯的其实是App Intents

北京时间 9 月 15 日凌晨&#xff0c;苹果开始推送 iOS 27 正式版&#xff08;美东时间是 9 月 14 日&#xff09;&#xff0c;iPadOS 27、macOS 27 等平台同步更新。这一版最大的看点不是界面&#xff0c;而是拖了两年多的新一代 Siri AI 终于以测试版形式落地&#xff1a;它基…

作者头像 李华