简介
ubus是新openwrt引入的一个消息总线,主要作用是实现不同应用程序之间的信息交互。
ubus启动后会在后台运行ubusd进程,该进程监听一个unix套接字用于与其他应用程序通信。其他应用程序可基于libubox提供的接口(或自己实现)与其通信。
使用ubus的方式主要有:1、向其注册消息或控制接口。2、向其调用其他应用程序的消息或控制接口。3、向其注册关心的事件。
ubus命令使用说明
ubus命令用于控制调试相关ubus接口,主要命令说明如下:
- list [<path>] List objects
- call <path> <method> [<message>] Call an object method
- listen [<path>...] Listen for events
- send <type> [<message>] Send an event
- wait_for <object> [<object>...] Wait for multiple objects to appear on ubus
ubus list [-v] 该命令用于显示当前ubus中注册的接口,其中-v参数用以显示各个接口的详细信息。示例如下:
ubus list -v ‘dhcp‘ @26b45f5d "ipv4leases":{} "ipv6leases":{} ‘hostapd.wlan0‘ @5e03d420 "get_clients":{} "del_client":{"addr":"String","reason":"Integer","deauth":"Boolean","ban_time":"Integer"}
ubus call 该命令用于调用ubus中当前注册的接口。示例如下:
ubus call dhcp ipv6leases { "device": { "br-lan": { "leases": [ { "duid": "0001000119660ee***4e543***3c70", "iaid": 3***72***5, "hostname": "*******-PC", "assigned": 3900, "length": 128, "ipv6": [ "fd23:a6ed:f19b::f3c" ], "valid": -38000 } ] } } }
ubus listen 用于监听ubus相关事件,如果不指定事件名则监听所有事件。(支持通配符*)
ubus send 用于发送事件
ubus wait_for 用于等待指定项的注册到ubus中。
libubus开发说明
to be continue
本文出自 “记录点滴收获成长” 博客,请务必保留此出处http://gofly.blog.51cto.com/4344767/1685199
原文地址:http://gofly.blog.51cto.com/4344767/1685199