mdbctl setprop 命令介绍
更新时间:2025/10/15
在Gitcode上查看源码mdbctl setprop 命令介绍
命令介绍
setprop <operation type> <object name> <interface name> <property name>
参数说明:
operation type:必选参数,提供set/unset两种模式,代表设置属性值与解除设置object name:必选参数,为指定属性接口所属的对象,可以通过lsobj查询组件有哪些对象interface name:必选参数,为指定属性所挂的接口,可以通过lsprop查询对象下挂了哪些接口property name:必选参数,为指定属性,可以通过lsprop查询对象下的属性
可以参考traceprop介绍中的流程获取组件下的接口与属性。
使用示例
示例1:设置和解除属性值
shell
# 当前属性值为54
% lsprop SOC_00
bmc.kepler.Managers.SOC
Temperature=54
# 设置属性值成功回显Success
% setprop set SOC_00 bmc.kepler.Managers.SOC Temperature 110
Success
# 属性值为110
% lsprop SOC_00
bmc.kepler.Managers.SOC
Temperature=110
# 解除override值
% setprop unset SOC_00 bmc.kepler.Managers.SOC Temperature
Success
# 属性值后台变更为50,解除后即为50并发送属性变更信号
% lsprop SOC_00
bmc.kepler.Managers.SOC
Temperature=50示例2:操作日志记录
shell
# 操作会记录对应操作日志
~ # cat /var/log/operation.log
2025-01-22 15:26:11 mdbctl,root@127.0.0.1,mdbctl,setprop set SOC_00 bmc.kepler.Managers.SOC Temperature 110 successfully
2025-01-22 15:26:24 mdbctl,root@127.0.0.1,mdbctl,setprop unset SOC_00 bmc.kepler.Managers.SOC Temperature successfully注意事项
setprop设置override值不会触发持久化和写硬件
setprop设置属性变更会触发持久化流程,但持久化App添加了忽略override值的逻辑,因此override值不会被持久化。同理硬件代理覆写场景也忽略override值,不会触发写硬件。
setprop以override模式设置对象属性值,Override值会常驻对外呈现
- 设置时如果与原始值不同,会触发属性变更
- 设置override值后属性的原值会保持后台业务变更逻辑,但不会触发属性变更信号,
setprop unset解除override值时,会恢复为原值,当前值与override值不同时会触发属性变更信号