展厅播放软件崩了怎么自动拉起?进程守护实操
进程守护可以在批准条件下恢复异常退出的程序,但必须区分正常维护退出、启动失败与业务卡住,设置退避、重启次数上限和人工解除入口。只要进程不在就无限拉起的循环,不适合作为无人值守交付方案。
先明确谁有权让程序停下
正常退出码不一定代表操作员有意停机,异常退出码也不自动允许重启。守护要结合维护模式、开放时段和预期运行状态判断。维护模式可以是受控状态或软件提供的机制,具体实现需记录,不能只靠某个容易误删的临时文件。
旧版示例每十秒检查进程并启动,无法识别人工关机、同名程序、错误路径和连续启动失败;另一个示例到达次数上限后等待十分钟又自动清零,也不是真正等待人工。这里撤下可被直接误用的无限循环,先用状态机验行为,再接受控启动器。
守护的判断口径
| 证据 | 能发现什么 | 不能证明什么 |
|---|---|---|
| 程序路径与PID存在 | 目标实例仍存在 | 窗口、播放与声音健康 |
| 窗口存在且可响应 | 部分界面可交互 | 画面在推进、输出正确 |
| 播放进度或业务心跳 | 某种业务接口在推进 | 物理屏幕与音响正常 |
| 现场或输出观测 | 观众侧表现 | 内部根因仍需日志 |
详细合同见播放器四层健康检查。没有接口就填未知,不能声称进程与句柄覆盖“八九成故障”。无窗口程序不应套窗口判据,静态图不应套画面变化判据。
用状态机限制动作
- 配置目标绝对路径、工作目录、参数、运行账户与会话,只允许一个启动负责人;自启与守护同时拉起可能重复实例。
- 进入维护模式后停止自动恢复,并留下责任人和时间;退出维护需显式核对目标状态。
- 异常时按5、10、20秒等逐次退避,上限与加载豁免由测试确定。进程短暂出现不能立刻把失败计数清零。
- 示例策略为600秒内最多3次自动启动;触发上限就进入锁定告警,只有人工检查后解除,绝不按定时器自动清空锁定。
下面是合成事件,用于验控制逻辑而非真实崩溃:维护退出不重启;连续三次启动后立即失败消耗三次预算;第四次进入锁定;随后只有人工解除事件才允许重新尝试。退出码、启动调用错误与探针超时分开记录。
可下载守护状态机输入与预期和只读演算脚本。Python 3.12.4执行过该合成序列,脚本只打印决策,不启动、终止或修改程序。这不证明某款代理已经实现同样策略,采用现成工具时仍需查对应版本并实测。
上线前按失败路径演练
在测试机分别验证维护退出、正常退出、异常退出、素材缺失、授权不可用、加载缓慢与多实例。记录故障事件、每次决策、启动结果、进入锁定时间和人工恢复动作。真正强杀或更名测试程序应在受控环境做,不在开馆展示中制造故障。
程序恢复不等于播放恢复。检查它是否载入正确工程、进入全屏、选对声音设备,并确认任务所属会话;窗口不可见的情况按任务登录会话核对处理。自启流程见开机自动全屏播放配置。
本轮未运行真实守护进程、未对SoftAgent做产品能力验证,也没有十秒自愈等实测结论。完整日志应能区分目标退出、探针失败和守护自身停止,监控陈旧时不能仍报告正常。
一级来源
2026-10-23核对:Microsoft任务安全上下文用于账户与登录类型条件;Microsoft GetExitCodeProcess用于退出状态语义。退避、限次和人工解除是本文测试合同,不是Windows自动提供的保证。
相关阅读
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。