Raspberry pi 用于传感器数据连接的DBU

Raspberry pi 用于传感器数据连接的DBU,raspberry-pi,sensors,dbus,xserver,Raspberry Pi,Sensors,Dbus,Xserver,几周前,我决定为我的家建造几个树莓pi项目。因为我意识到我需要相同的传感器数据用于多功能应用,所以我将传感器放在一个进程中。通过将此进程连接到DBus,我可以使用其他应用程序读取传感器数据。当我使用ssh-X选项连接到我的raspberrypi时,这非常有效,在这里我共享xserver。如果不共享xserver,则会出现错误: 无法连接到D-Bus会话总线。 要启动它,请运行: eval `dbus-launch --auto-syntax` 当然,我尝试运行命令evaldbus-launch

几周前,我决定为我的家建造几个树莓pi项目。因为我意识到我需要相同的传感器数据用于多功能应用,所以我将传感器放在一个进程中。通过将此进程连接到DBus,我可以使用其他应用程序读取传感器数据。当我使用ssh-X选项连接到我的raspberrypi时,这非常有效,在这里我共享xserver。如果不共享xserver,则会出现错误:

无法连接到D-Bus会话总线。 要启动它,请运行:

eval `dbus-launch --auto-syntax`
当然,我尝试运行命令
evaldbus-launch--auto-syntax
,这使错误消失了,但我仍然无法通过dbus访问数据

怎么了?我不能在没有xserver的情况下启动DBus应用程序吗?如果我可以在没有xserver的情况下启动传感器进程,那就太好了,因为我想在init.d中将其作为服务启动

有人有类似的问题吗

我不能在没有xserver的情况下启动DBus应用程序吗

当然,应用程序只需要知道总线地址。对于会话总线,这意味着需要设置
DBUS\u session\u bus\u ADDRESS
环境变量(X11确实可以用作自动启动会话的回退方法,但环境变量是连接到现有会话的正确方法)


在你的情况下,我会考虑使用系统总线:它听起来像是一个传感器API的正确位置,而一个嵌入式设备真的不应该需要一个以上的总线。使用系统总线,即使通过SSH连接,您也不需要设置地址(但您可能需要确保服务策略允许应用程序用户向服务发送消息)。

谢谢您的回答。设置
DBUS\u SESSION\u BUS\u ADDRESS
环境变量确实解决了我的问题。稍后我也会看看系统总线。