当系统启动时,需要使用dbus-launch来启动dbus-daemon,一般而言,
一般采用下面的命令启动dbusdaemon以及dbusapplication
(1) eval `dbus-launch --auto-syntax`
(2) ./yourapp
第一行代码,采用eval来执行两次,第一次执行dbus-lauch--auto-syntax,除了启动dbusdaemon之外,还输出了下面的内容:
DBUS_SESSION_BUS_ADDRESS='unix:path=/tmp/dbus-6Z62FMmwf3,guid=5dbd92e4865a3f56880d2120000000d6';
export DBUS_SESSION_BUS_ADDRESS;
DBUS_SESSION_BUS_PID=998;
第二次执行时就将环境变量DBUS_SESSION_BUS_ADDRESS暴露出去了。所有的dbusapplication在注册DBUS服务时,必须知道这个DBUS_SESSION_BUS_ADDRESS的数据。
在第二行执行自己的dbus application的时候,根据DBUS_SESSION_BUS_ADDRESS环境变量,能够找到sessionbus进行注册和通讯