1. ubus monitor
1.1 命令格式
ubus -m xxx monitor
比如:ubus -m add_object monitor,就是监控add_object消息。
1.2 支持的类型
static const char * const monitor_types[] = {
[UBUS_MSG_HELLO] = "hello",
[UBUS_MSG_STATUS] = "status",
[UBUS_MSG_DATA] = "data",
[UBUS_MSG_PING] = "ping",
[UBUS_MSG_LOOKUP] = "lookup",
[UBUS_MSG_INVOKE] = "invoke",
[UBUS_MSG_ADD_OBJECT] = "add_object",
[UBUS_MSG_REMOVE_OBJECT] = "remove_object",
[UBUS_MSG_SUBSCRIBE] = "subscribe",
[UBUS_MSG_UNSUBSCRIBE] = "unsubscribe",
[UBUS_MSG_NOTIFY] = "notify",
};
2 ubus list
2.1 列出同类型的section
root@OpenWrt:/# ubus list network.interface.*
network.interface.WAN11
network.interface.lan
network.interface.loopback
network.interface.wan
network.interface.wan6
3 系统自带ubus
3.1 hotplug
系统默认创建了如下ubus服务:
hotplug.dhcp
hotplug.ieee80211
hotplug.iface
hotplug.neigh
hotplug.net
hotplug.ntp
hotplug.tftp
3.1.1 初始化
/etc/hotplug.d下的目录名,在如下流程中初始化对应的ubus服务,也就是"ubus list"看到的hotplug.xxx
ubus_connect_cb->ubus_init_hotplug->init_subsystems->add_subsystem