实战:用 SoftAgent 守住播放软件不掉链子
- 分清 SoftAgent 里"受管程序"与"守护项"两个列表各管什么
- 配出一个真正能崩溃自愈的守护项,并实测验证
- 用每项独立的启动延迟做开机错峰,避免多程序抢资源
- 掌握检修时暂停守护的正确姿势,避免"关不掉的程序"
- 理解免费版 2 项配额的计数口径与超额后的降级行为
| 器材 | 数量 | 参考 |
|---|---|---|
| SoftAgent(免费版含 2 项守护) | 1 | — |
| Windows 播放主机 | 1 | — |
| 播放软件(任意,用记事本也能练) | 1 | — |
价格随渠道波动,以购买页实时为准。
器材清单
| 名称 | 数量 | 说明 |
|---|---|---|
| SoftAgent | 1 | 装在播放主机上,免费版含 2 项守护,够本节全程 |
| Windows 播放主机 | 1 | 测试机即可,别拿正在展出的设备练 |
| 播放软件 | 1 | 你实际用的播控软件;纯练手用记事本(notepad.exe)也行 |
本节要反复杀进程做验证。请在测试机上做。 用记事本当靶子练一遍,比拿真播放软件试更安全也更快。
为什么守护是"最后一道保险"
展厅稳定性有三件套:定时保证到点能开起来,自启保证开机进入运行态,守护保证跑起来之后不掉链子。前两件在定时开关机与无人值守方案里讲过了,这一节补最后一件。
为什么它最关键?因为前两件解决的是"每天早上"这一个时间点的问题,而守护解决的是剩下那十几个小时的问题。播放软件半夜两点崩一次,没有守护就黑屏到第二天开馆;有守护,十几秒自己活过来,观众根本不知道发生过什么。
守护的原理、判活的几种口径、以及自己写脚本要怎么避开重启风暴,在播放软件崩了怎么自动拉起那篇里讲透了。这一节不重复原理,直接落到"在 SoftAgent 里怎么配出来"。
第一步:先分清两个列表
打开 SoftAgent 你会看到「程序」和「守护」两个标签页。这是全篇最容易混淆的地方,先花两分钟搞清楚,不然配了半天发现配错地方。
| 程序(Programs) | 守护(Guard) | |
|---|---|---|
| 解决什么 | 远程手动启停 | 崩溃自动拉起 |
| 怎么寻址 | 按序号(0 基,就是列表顺序) | 按稳定 id |
| 对应指令 | startpro:0 / killpro:0 / killall |
run:<id> / stop:<id> |
| 谁触发 | 你远程下发 | 程序崩了,代理自动触发 |
| 免费版配额 | 2 个 | 2 项 |
一句话区分:「程序」是给你远程点的,「守护」是给它自己盯的。 两个列表相互独立,同一个播放软件通常两边都要加——你既想远程重启它,也想它崩了自动起来。
序号那一列有个坑要留意:受管程序按 0 基序号寻址,所以拖拽重排会让下发的序号指向另一个程序。现场配置定下来之后别随便调顺序,否则中控那边下的 startpro:0 就打偏了。
第二步:加一个守护项
进「守护」标签页,把播放程序加进去,填名称和可执行文件路径。
刚加完先别急着走,看这几个开关:
- 每行的守护开关:控制这一项要不要被守护。不需要守护的项可以关掉而不必删除——比如某台机器上装了但暂时不用的程序。
- 右上角总开关:全局的守护服务开关,关掉则所有守护暂停。这个开关和托盘菜单里的"暂停守护"是同一个状态,两处改哪个都一样。
- 启动延迟:下一步专门讲。
你应该看到——添加后这一项显示在列表里,状态列能看到它当前是否在运行。如果程序此刻没开,守护服务会在轮询周期内把它拉起来。
第三步:用启动延迟做开机错峰
每个守护项都能单独设一个 0~600 秒的启动延迟,指的是登录/配置加载后,延迟多久才首次拉起。
这个参数有两个用途,都很实在:
一是等系统缓过来。 开机瞬间系统正忙着连网络、挂载映射盘、初始化显卡驱动、跑杀毒的开机扫描。播放软件这时候起来,很可能读不到片源、找不到网络路径,起来了也是废的。延后 30~60 秒,成功率立刻不一样。
二是多程序按顺序起。 假设你要起播放软件和中控客户端两个程序,同时起会互相抢 CPU 和磁盘,整体反而更慢,还可能互相卡死。给它们设不同延迟——A 延 20 秒、B 延 45 秒——一个个来,总耗时反而更短。
要注意一点:这个延迟只管"首次拉起",跟崩溃后的重启节奏无关。崩溃重启由内部的指数退避策略控制,不受这个值影响。
第四步:杀进程实测
配完必须验,不然你永远不知道它到底生效没有。这是本节最重要的一步。
打开任务管理器,找到被守护的程序,结束进程。
你应该看到——守护服务在轮询周期内(每秒一轮)发现进程没了,把它重新拉起来,程序窗口重新出现,「守护」页的状态列跟着变回运行中。
多试两次,观察间隔的变化。你会发现连续杀几次之后,重新拉起的间隔变长了——第一次几秒,后面 10 秒、20 秒逐次拉长。这不是卡了,是指数退避在起作用:万一程序是因为"必然失败"的原因起不来(素材盘没挂上、授权过期、配置损坏),无限快速重试会把 CPU 和磁盘拖死,严重时连远程桌面都连不上,只能第二天跑现场。退避加上时间窗限次,就是防这个的。
正常恢复之后,退避会自动重置回初始值,不影响下一次偶发崩溃的响应速度。
第五步:检修时怎么正确地"关掉它"
现场维护时经常碰到这个尴尬:你想关掉播放软件改点东西,结果刚关掉它就被守护拉起来了,关也关不掉。
别去杀 SoftAgent,也别删守护项。 正确姿势有两个:
临时检修用总开关。 「守护」页右上角的总开关(或托盘菜单里的"暂停守护")关掉,所有守护立即暂停,你可以自由关闭程序。检修完再打开。注意这个状态不落盘——重启 SoftAgent 后会恢复成守护开启,这是刻意设计的,防止有人暂停之后忘了恢复,导致展厅裸奔。
远程检修用 stop 指令。 从控制端发:
Send-Agent -Ip '192.168.1.50' -Cmd 'stop:db-player' # 停止并暂停这一项的守护
Send-Agent -Ip '192.168.1.50' -Cmd 'run:db-player' # 检修完再拉起来
stop:<id> 的语义是"停掉它并且暂停它的守护",所以不会出现"刚停就被拉起"的打架。run:<id> 则是立即拉起。这两条指令按稳定 id 寻址,不是序号,所以不受列表顺序影响,写进中控脚本更可靠。
第六步:搞懂免费版的配额口径
免费版给 2 项守护。这个"2"的计数口径要说清楚,否则容易误判:
只有同时满足三个条件的项才占配额——是 Program 型、已启用、且开了守护开关。反过来说:
- 关掉守护开关的项不占配额;
- UdpCommand 型的守护项(发一条指令而不是起一个程序)不占配额,因为它能发什么已经由那条指令自己的授权档位管住了。
超出配额会怎样?是降级,不是删除。 超额的守护项退化成"仅支持手动 run/stop",配置完整保留在那里,不会丢。哪天升级了授权,重启之后全部自动恢复守护能力,不用重配。
展厅典型场景是"播放软件 + 中控客户端"两个关键进程,2 项通常够。真需要守更多,看回执里的 requiredEdition 提示升级即可。
第七步:和定时任务配合
守护和定时是两件事,配合起来才完整:
- 守护管的是"意外情况"——程序不该退出却退出了,把它拉回来;
- 定时管的是"计划内的动作"——到点该关就关,该开就开。
有个组合要特别注意:闭馆定时关闭播放软件时,如果守护还开着,关掉就会被立刻拉起来。 正确做法是闭馆流程里先发 stop:<id>(停止并暂停守护),而不是直接杀进程。或者干脆整机关机,那就没这个问题了。
端侧定时任务的三种触发方式和配法,见展厅电脑端侧定时任务。
排错表
| 症状 | 多半原因 | 怎么办 |
|---|---|---|
| 杀了进程不自动起来 | 守护总开关关着,或该项守护开关没开 | 检查右上角总开关和行内开关 |
| 关不掉程序,一关就起 | 守护正在工作 | 用总开关暂停,或发 stop:<id> |
| 重启机器后守护没了 | SoftAgent 自身没设开机自启 | 「设置」页打开开机自启,重启实测 |
| 拉起来了但没进播放状态 | 守护只负责启动进程 | 播放软件自身要支持"启动即自动加载并全屏" |
| 开机后拉起失败,手动能起 | 起太早,依赖项没就绪 | 加启动延迟,30~60 秒起步 |
| 加不了第 3 项,按钮置灰 | 免费版配额 2 项 | 关掉不需要的项,或升级授权 |
| 重启后暂停状态没了 | 总开关状态刻意不落盘 | 这是设计如此,防止忘记恢复 |
| 同一程序开了两个实例 | 守护和开机自启重复拉起 | 二选一,或给程序加单实例互斥 |
最后一条挺常见:程序既加进了 Windows 启动项,又配了守护,开机时两边各拉一次。选一边就够了——推荐交给守护,因为它还带崩溃自愈,而启动项不带。
到这一步你拥有了什么
这台播放主机现在能扛住展厅最高频的那类故障:软件意外退出。它会在秒级发现、自动拉回来,还不会因为"拉不起来"而把机器拖死。
配合前面两节,一台展厅播放主机的完整能力就齐了:
把这三样复制到全场每台机器上,剩下的就是"几十台怎么统一看、统一管"的问题了,那是设备在线监控与告警体系和多馆多点位统一运维要解决的。
本教程对应产品
查看产品详情 →