From 3d83e907d1c8bfddf472ff0517721796a85ceda3 Mon Sep 17 00:00:00 2001 From: ila <2+ila@noreply.git.ilapage.cn> Date: Thu, 27 Aug 2026 16:09:18 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E6=88=90=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#106=20=E5=BE=85=E9=AA=8C=E6=94=B6=E5=BD=92=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.-.md | 47 ++++++++++++++----- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.-.md b/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.-.md index 8690410..b47c822 100644 --- a/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.-.md +++ b/Task-106-Sense-%E6%9C%AC%E6%9C%BA-Supervisor-%E5%AE%9E%E4%BE%8B.-.md @@ -1,9 +1,9 @@ # 106 Sense-本机-Supervisor-实例 -- 类型:需求 / 缺陷 / 重构 -- 所属 Epic:# -- 所属 MVP / 版本:# -- 状态:待验收 / 已完成 +- 类型:运维配置 +- 所属 Epic:#7 +- 所属 MVP / 版本:#8 / Sense 首个独立纵切 +- 状态:待验收 - 日期:2026-08-27 - Gitea 工单:https://git.ilapage.cn/ila/yovision/issues/106 - Wiki 页面:Task-106-Sense-本机-Supervisor-实例 @@ -11,32 +11,53 @@ ## 背景与目标 - +本机 Sense 原由独立终端启动,不受 `D:\supervisor` 管理。目标是在不复制现场秘密、不修改 Sense 业务代码的前提下,让 Supervisor 托管现有 Windows 交付包,并提供自动启动、异常重启、进程组停止和独立日志。 + +当前 Brain、Bell 只有规则文件,没有可运行交付物,因此本任务只创建 `yovision-sense`,不创建空实例。 ## 最终方案 - +- 在仓库外新增 `D:\supervisor\programs\yovision.conf`,实例名为 `yovision-sense`。 +- 工作目录使用 `D:\OPC\yovision\Sense\dist\sense-windows-amd64`。 +- Supervisor 直接调用包内 `scripts/runtime/start-sense.ps1`,配置仍由 `config/sense.env` 读取。 +- 配置启用 autostart、autorestart、启动重试、进程组停止和 50 MB × 5 的日志轮转。 +- 日志写入 `D:\supervisor\logs\yovision-sense.log`;Supervisor 配置不含 environment、数据库连接、令牌、密码或摄像头凭据。 +- 使用包内停止脚本核对并停止原 Sense PID 28440,释放 18080 后执行 Supervisor reload。 + +原计划按最坏情况说明 reload 会重启全部实例;实际命令返回 `Added Groups: yovision-sense`。dsh/goauto PID 未变化,原先处于 Backoff 的三个 Chorus 实例在 reload 后恢复 Running,因此没有观察到既有 Running 实例被重启。 ## 修改文件 -- `<文件>`:<改动说明> +- `D:\supervisor\programs\yovision.conf`:新增本机 Supervisor 实例配置;该文件位于仓库外。 +- `Local-Development-and-Verification` Wiki:记录实例位置、常用命令、秘密边界和验证方式。 +- `docs/04-local-development-and-verification.md`:上述 Wiki 的只读镜像。 +- `wiki-docs.json`、`docs/task/106-Sense-本机-Supervisor-实例.md`:任务归档登记与镜像。 ## 验收结果 | 验收标准 | 结果 | |---|---| -| | 通过 / 未通过 | +| `yovision-sense` 稳定为 Running | 通过 | +| Sense 监听 18080,健康检查与首页返回 200 | 通过 | +| Sense 管理的 MediaMTX 随单实例重启更新 PID | 通过 | +| Supervisor 配置不包含现场秘密 | 通过 | +| dsh/goauto 保持运行,Chorus 从既有 Backoff 恢复 | 通过 | +| Wiki、归档、提交、PR 和证据 | 进行中,等待用户验收 | ## 测试 -- 执行命令:`<命令>` -- 结果: -- **未验证部分**: +- `supervisord.exe ctl /c supervisord.conf reload`:返回新增 `yovision-sense` 配置组。 +- `supervisord.exe ctl /c supervisord.conf status`:七个实例均为 Running;`yovision-sense` Supervisor PID 28000。 +- `GET /health`、`GET /healthz`、`GET /`:均返回 200。 +- 受控执行 `restart yovision-sense`:Sense PID 从 38408 更新为 43916,MediaMTX PID 从 27880 更新为 27212,重启后健康检查与首页仍为 200。 +- 外部配置 SHA-256:`7C5BDDD574384ED6038F0C2DAA8CE364FB1EA996B256831595ABF4E22EDA4769`。 +- 配置敏感字段扫描:未发现 password、token、secret、`SENSE_DATABASE_URL` 或 `environment=`。 +- **未验证部分**:未通过重启 Windows 验证开机后的整体 Supervisor 自启动;未故意崩溃 Sense 验证异常自动重启,已用 Supervisor 受控重启验证停止与拉起链路。 ## 遗留问题 - +Supervisor 管理端口当前监听 `0.0.0.0:9009` 且未配置认证,这是任务开始前已存在的安全风险,本任务按确认范围未修改,建议另建安全工单处理。 ## 相关提交 -- `<提交哈希>` <提交说明> +- `0646f5effd53536ae3f608c5e5dffe7fe950cb8f` 记录 Sense Supervisor 托管方式。