首页 > 其他分享 >D-Bus——system bus调用机制

D-Bus——system bus调用机制

时间:2024-06-12 22:57:53浏览次数:29  
标签:服务 系统总线 Bus dbus system 查找 bus

        在 D-Bus 中,系统总线(system bus)和会话总线(session bus)的工作方式有所不同。会话总线主要依赖环境变量来找到总线地址,而系统总线则依赖于标准的系统路径和配置。

系统总线的服务查找机制

系统总线的启动:

        系统总线守护进程(dbus-daemon --system)由 systemd 或系统启动脚本启动。

        系统总线的地址是固定的,通常不需要通过环境变量来查找。

系统总线的地址:

        系统总线的地址通常是固定的 UNIX 套接字路径,例如 /var/run/dbus/system_bus_socket。这个路径在 D-Bus 配置文件中定义。

配置文件:

        系统总线守护进程使用 /etc/dbus-1/system.conf 配置文件。这个文件定义了系统总线的行为、权限、服务目录等。

        在 /usr/share/dbus-1/system-services/ 和 /etc/dbus-1/system.d/ 目录中定义了系统总线的服务。

客户端如何查找系统总线:

        D-Bus 客户端应用程序不需要通过环境变量来查找系统总线。它们直接连接到标准的 UNIX 套接字路径。

        在编程接口中,系统总线的地址通常通过 DBUS_BUS_SYSTEM 常量来引用,具体实现中会解析到 /var/run/dbus/system_bus_socket。

查找服务的过程

启动和连接:

        当一个 D-Bus 客户端想要与系统总线通信时,它会尝试连接到 /var/run/dbus/system_bus_socket。

        这个路径是固定的,不需要通过环境变量进行查找。

服务查找和激活:

        当客户端发送消息到系统总线请求某个服务时,系统总线守护进程会检查当前已注册的服务。

        如果服务未运行,系统总线守护进程会查找 /usr/share/dbus-1/system-services/ 目录中的服务描述文件,并尝试激活该服务。

服务描述文件:

        服务描述文件是 .service 文件,定义了如何启动服务。例如,一个服务描述文件可能包含以下内容:

[D-BUS Service]

Name=org.freedesktop.NetworkManager

Exec=/usr/sbin/NetworkManager --no-daemon

        系统总线守护进程根据这些描述文件来启动相应的服务。

总结

  1. 系统总线地址:系统总线使用固定的 UNIX 套接字路径(如 /var/run/dbus/system_bus_socket),客户端直接连接这个路径。
  2. 配置文件:系统总线的行为和服务目录通过配置文件(如 /etc/dbus-1/system.conf 和 /usr/share/dbus-1/system-services/)进行定义。
  3. 服务查找:系统总线守护进程根据服务描述文件来查找和激活服务,不依赖环境变量。

这种机制使得系统总线在启动和服务查找方面更加简单和可靠,因为它不依赖于动态环境变量,而是基于固定的路径和配置文件。

标签:服务,系统总线,Bus,dbus,system,查找,bus
From: https://blog.csdn.net/qq_43287763/article/details/139638013

相关文章

  • MPTCP is missing from system parameters inside Mininet hosts
    https://github.com/mininet/mininet/issues/1161 Hello,Iamhavingproblemswithcertainsystemparametersnotbeingaccessiblefrom within a Mininet hosteventhoughtheyareaccessiblefromthehostsystem.Afteracleaninstallwiththefollowing:U......
  • Modbus转Profinet协议转换网关:快速配置实践指南
    Modbus协议是一种串行通讯协议,被广泛应用于工业控制领域;而Profinet协议是基于以太网的工业通讯协议,具有实时性和灵活性。由于现实工业场景中存在不同设备使用不同通讯协议的情况,将Modbus转换为Profinet的需求日益增长。为了实现这一转换,Modbus转Profinet协议转换网关成为了必不可......
  • [转]Systemd 入门教程:命令篇
    原文地址:Systemd入门教程:命令篇-阮一峰的网络日志Systemd是Linux系统工具,用来启动守护进程,已成为大多数发行版的标准配置。本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。一、由来历史上,Linux的启动一直采用init进程。下面的命令......
  • 泗博Modbus TCP转 PROFINET网关EPN-330
    ​EPN-330作为PROFINET从站,支持与西门子S7-200SMART/300/400/1200/1500全系列PLC以及具有PROFINET主站的系统无缝对接,而ModbusTCP端,可以与ModbusTCP从站设备、主站PLC、DCS系统以及组态软件等进行数据交互。​通过EPN-330,用户可以轻松地将多个ModbusTCP接口的设备连接到PROF......
  • ibus-libpinyin无法使用中括号下一页(未解决)
    问题中括号切换上下页用惯了,使用这个不能【】真不习惯。SunPinyinsunpinyin可以[]切换,但是【】本身变成其他字符了。不能使用shift将半路的中文换为英文。比如我打拼音,输入完后按shift,我希望他变成英文,并且切换到英文。搜狗输入法系统是Ubuntu22.04搞了半天用不了,能看到......
  • FlinkSQL 运行官网的 filesystem SQL 连接器例子出错:Cannot discover a connector usi
    我的例子程序是仿照官网例子写的:我的程序:packagecom.xxx.demo;importorg.apache.flink.streaming.api.datastream.DataStream;importorg.apache.flink.streaming.api.environment.StreamExecutionEnvironment;importorg.apache.flink.table.api.bridge.java.StreamTabl......
  • 通讯协议转换Modbus转Profinet网关
    Modbus转Profinet网关是工业通信转换设备,能够实现Modbus协议与Profinet协议之间的有效转换和稳定传输。通过该网关,工业设备之间可以实现数据交换和通信,提高生产效率和智能化程度。支持ModbusRTU主从站。此外,Modbus转Profinet网关自带网络和串口,支持485/232接口打开地图并创建......
  • 《Optimizing the LINPACK Algorithm for Large-Scale PCIe-Based CPU-GPU Heterogene
    论文标题《OptimizingtheLINPACKAlgorithmforLarge-ScalePCIe-BasedCPU-GPUHeterogeneousSystems》为基于PCIe的大规模CPU-GPU异构系统优化LINPACK算法作者GuangmingTan、ChaoyangShui、YinshanWang、XianzhiYu和YujinYan来自中科院计算所初读摘要......
  • 搭建verilog/systemverilog学习环境
    目录仿真软件选择使用iverilog的基本步骤仿真软件选择学习verilog或者systemverilog过程中,使用那种仿真软件?当然最好是使用synopsys的vcs+verdi的组合,功能强大,而且大部分公司也使用synopsys的eda软件,如果熟练掌握vcs+verdi对以后工作中使用它们也是有很大帮助。但是这两个软件......
  • C#Modbus串口通信
    Modbus是一种应用层协议,主要用于工业自动化和控制系统中。它定义了一种消息结构,使得控制器(如PLC)能够与其它设备(如传感器、执行器、驱动器等)进行通信。Modbus协议支持多种通信方式,包括但不限于串行通信(RS-232、RS-485)、以太网TCP/IP、以及无线通信。Modbus串口通信:Modbus串口......