我试图使用D-Bus来控制另一个应用程序。使用Python绑定时,可以将D-Bus与dbus.SessionBus()
一起使用。
但是,其他应用程序需要首先设置环境变量DBUS_SESSION_BUS_ADDRESS
和DBUS_SESSION_BUS_PID
,否则他们会报告任何.service文件都没有提供名称&#34;。< / p>
我的问题是,为什么某些应用程序需要设置环境变量?在某些情况下,是初始化会话总线的标准过程吗?
答案 0 :(得分:0)
只是猜测:python客户端可能能够使用X11来发现会话总线地址(除了使用DBUS_SESSION_BUS_ADDRESS环境变量)。它存储在_DBUS_SESSION_BUS_ADDRESS
选择所有者窗口的_DBUS_SESSION_BUS_SELECTION_[hostname]_[uuid]
属性中(uuid是/ var / lib / dbus / machine-id的内容)