為了在OpenWrt中提供守護(hù)進(jìn)程和應(yīng)用程序間的通訊,開發(fā)了ubus項目工程。它包含了守護(hù)進(jìn)程、庫以及一些額外的幫助程序。
核心部分是ubusd守護(hù)進(jìn)程,它提供了其他守護(hù)進(jìn)程將自己注冊以及發(fā)送消息的接口。因為這個,接口通過使用Unix socket來實現(xiàn),并使用TLV(type-length-value)消息。
為了簡化軟件的開發(fā),可以使用已有的libubus庫來使用ubus(連接ubus)。
每個守護(hù)進(jìn)程在自己的名稱空間中注冊自有的路徑。每個路徑可以提供多個帶有不定數(shù)量參數(shù)的方法,方法可以通過消息回復(fù)調(diào)用。
代碼在LGPL 2.1授權(quán)方法下發(fā)布,你可以通過git在git://nbd.name/luci2/ubus.git或通過http在http://nbd.name/gitweb.cgi?p=luci2/ubus.git;a=summary獲取。 ubus從r28499起被包含在OpenWrt中。
ubus命令行工具
ubus可以和ubusd服務(wù)器交互(和當(dāng)前所有已經(jīng)注冊的服務(wù)). 它對研究和調(diào)試注冊的命名空間以及編寫腳本非常有用。對于調(diào)用帶參數(shù)和返回信息的方法,它使用友好的JSON格式。下面是它的命令說明。
list
缺省列出所有通過RPC服務(wù)器注冊的命名空間:
root@uplink:~# ubus list
network
network.device
network.interface.lan
network.interface.loopback
network.interface.wan
root@uplink:~#
如果調(diào)用時包含參數(shù)-v,將會顯示指定命名空間更多方法參數(shù)等信息:
root@uplink:~# ubus -v list network.interface.lan
'network.interface.lan' @099f0c8b
"up": {? }
"down": {? }
"status": {? }
"prepare": {? }
"add_device": { "name": "String" }
"remove_device": { "name": "String" }
"notify_proto": {? }
"remove": {? }
"set_data": {? }
root@uplink:~#
call
......本站只呈現(xiàn)部分內(nèi)容,查看完整文章請到WiFiDog官網(wǎng)社區(qū) http://www.wifidog.pro/2015/08/10/openwrt-ubus%E6%9E%B6%E6%9E%84.html,轉(zhuǎn)載請注明出處