首页 > 系统相关 >ubusd守护进程

ubusd守护进程

时间:2023-04-12 16:15:37浏览次数:23  
标签:调用 uloop ubus JSON ubusd 注册 进程 守护

核心部分是ubusd守护进程,它提供了其他守护进程将自己注册以及发送消息的接口。因为这个,接口通过使用Unixsocket来实现,并使用TLV(type-length-value)消息,ubus内部使用Blob_buf,Blob_attr等结构来表示。
ubus有两种调用,一个是method调用,一个是notification,其中method包括等待函数返回和不用等待返回,notification是广播和DBus的signal类似。ubus使用是先建立连接,然后把连接加入epollset中。下面是它的一些调用API。
uloop_init(); 创建epoll句柄,最多监听32个fd
ubus_connect(); 创建ubus连接
ubus_add_uloop(); 把创建的ubus连接注册到epoll中。
ubus_add_object(); 注册对象到的ubus连接。
uloop_run(); 等待I/O事件发生,调用相对应的对象的功能函数。
ubus_free(); 关闭ubus连接
uloop_done(); 关闭epoll句柄

 

ubus调试有一个命令行工具叫ubus,ubus可以和ubusd服务器交互(和当前所有已经注册的服务).它对研究和调试注册的命名空间以及编写脚本非常有用。可以调用带参数和返回信息的方法,它使用友好的JSON格式。JSON(JavaScriptObjects Notation)是一种轻量级的数据交换方式,JSON是humannice type,有两种数据结构对象和数组。
对象: {“firstname”:“Brett”,“lastname”:“Mical”}
数组:[“aaa”,“bbb”, “ccc”]


下面是它的命令说明。
ubus Commands:


-list [<path>] List objects


-call <path> <method> [<message>] Call an objectmethod


-listen [<path>...] Listen for events


-send <type> [<message>] Send an event


-wait_for <object> [<object>...] Wait for multipleobjects to appear on


ubuslist缺省列出所有向服务器注册的命名空间,如果调用时包含参数-v,将会显示指定命名空间更多方法参数等信息。
ubuscall 调用指定命名空间中指定的方法,并且通过消息传递给它,消息参数必须是有效的JSON字符串,并且携带函数所要求的键及值。
Ubuslisten 设置一个监听socket并观察进入的事件。
Ubussend 发送一个事件提醒。

标签:调用,uloop,ubus,JSON,ubusd,注册,进程,守护
From: https://www.cnblogs.com/hshy/p/17310125.html

相关文章

  • java怎么样判断一个进程是否已近结束
    以记事本程序为例Processp=Runtime.getRuntime().exec("notepad.exe");try{p.waitFor();//等待notepad.exe的结束}catch(InterruptedExceptionex){System.err.println("ERROR");System.exit(1);}//继续自己的程序参见http://zhidao.baidu.com/qu......
  • dll正由另一进程使用,因此该进程无法访问此文件
    打开Windows资源监视器:按下Win+R快捷键打开“运行”对话框,输入resmon命令并按下回车键。在资源监视器中,选择“CPU”选项卡,然后在“关联的句柄”列中查找GuiDB.dll文件。您应该能够找到锁定该文件的进程的名称和PID。然后右键关闭。......
  • Linux操作系统进程的状态和转换(五态模型)
    1、进程的状态和装换1.1进程的三态模型按进程在执行过程中的不同情况至少要定义三种状态:运行(running)态:进程占有处理器正在运行的状态。进程已获得CPU,其程序正在执行。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。就绪(ready)态:进程具......
  • multiprocessing和tqdm配合使用(多进程下载文件进度条显示)
    代码importmultiprocessingasmpimportplatformfromtqdmimporttqdmimportwgetls=['url1','url2','url3']#这里填入实际要下载的urlpbar=tqdm(total=len(ls))pbar.set_description('Sleep')update=lambda*args:pbar.......
  • 多进程下载nadc上的数据
    importwgetfrombs4importBeautifulSoupasbsimportrequestsimportrandomimportrequestsfromtqdmimporttqdmfromconcurrent.futuresimportThreadPoolExecutor,Future,as_completed,waitfrommultiprocessingimportcpu_countheaders=[&#......
  • 进程与线程&并行与并发的概念
    一、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进......
  • Java并发(一)----进程、线程、并行、并发
    一、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进......
  • MFC-ExitProcess结束进程
     ExitProcess(0);//结束调用的进程及其所有的线程//参数:退出代码//返回值:此函数没有返回值        ......
  • windows-根据进程名获取进程pid,定时监控多个进程性能并写入csv文件
    #!/usr/bin/python#-*-coding:utf-8-*-importsysimporttimeimportpsutildefget_pid(name):pids=psutil.process_iter()forpidinpids:if(pid.name()==name):return(pid.pid)defwrite_csv(p,pidnum,pidname):cu......
  • python 多进程
    背景:串行执行慢,考虑使用多进程来加速。1多进程这块可以参考:https://blog.csdn.net/Hao_ge_666/article/details/1205717312多线程这块可以参考:https://blog.csdn.net/Hao_ge_666/article/details/1206030143进程池参考:https://zhuanlan.zhihu.com/p/568073350当任务需......