选择system bus还是session bus?

不同的系统在使用daemon dbus时,有两个选择,可以选择system bus,

简单些;也可以使用session bus; 手机不象PC那样有多用户,手机一般就单用户,

所以手机系统就一个session, 所以,用system bus和session bus来讲区别不大。

 

 

如何用session bus:

 

test@test-desktop:~$ dbus-launch --sh-syntax --exit-with-session
DBUS_SESSION_BUS_ADDRESS='unix:abstract=/tmp/dbus-4LByHVXzpZ,guid=6c8c42131a483732eca9a90048383b44';
export DBUS_SESSION_BUS_ADDRESS;
DBUS_SESSION_BUS_PID=6836;
test@test-desktop:~$

 

这样做不行,需要把环境变量设置一下

test@test-desktop:~$ dbus-launch --sh-syntax --exit-with-session >>env.sh

test@test-desktop:~$ source ./env.sh

 

然后另外开一个terminal, 直接运行source ./env.sh就可以了,这样两个terminal中的session dbus的环境设置是一样的。

 

 

 如果用system bus:

直接运行你系统里的dbus-daemon的命令:

test@test-desktop:~$ dbus-daemon --system
Failed to start message bus: The pid file "/var/run/dbus/pid" exists, if the message bus is not running, remove this file
test@test-desktop:~$

 

一般会出现上面的错误:

可以这样处理:

test@test-desktop:~$  rm -rf "/var/run/dbus/pid

test@test-desktop:~$ dbus-daemon --system 

这样系统中的system bus就可以用了。

 

 根据各个系统的不同,可能所有的程序都挂载到system bus上,也可能都挂载到session bus上面,

向maemo平台就是使用的session bus. 从上面的启动daemon bus的过程中可以看出,用system bus简单些;

用session bus配置就麻烦些:各个不同的程序可能是运行在不同的进程的,这样往session bus上面挂链接

时,需要注意环境变量一致的问题,否则挂接上去了,也不能实现进程之间的正常通信。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值