Total Pageviews

Saturday 27 October 2012

关于d-bus


D-Bus,系统消息总线,一种应用之间通信的“系统设施”。在GNOME和KDE环境中被广泛使用,D-Bus允许用户做方法调用或者捕获从别的程序发送的信号,从而达到进程通信的目的。
在Linux桌面上,发挥着重要作用。通常,当dbus服务停止后,桌面就会立即crash。
但是在服务器上,dbus发挥着什么作用呢?可以停止么?
Archlinux 的安装文档上,对dbus轻描淡写了一句:
注意: 许多应用程序都需要 dbus,如果确定不需要它,请跳过这个部分。
可以看出,dbus,并不是系统必需的服务。
RHEL6,以及Ubuntu(更多其它发行版也在使用)在使用的Upstart的(代替原来的 SystemV init ),支持dbus,但是没有dbus的环境,一样可以运行良好。init会在接到USER1信号时,连接dbus。也就是说,init 也可以在没有dbus的情况下,可以不连接dbus。
另一个证据,看dbus的配置文件/etc/dbus-1/system.d 下面:
avahi-dbus.conf hal.conf nm-avahi-autoipd.conf nm-dispatcher.conf oddjob.conf yum-updatesd.conf
bluez-hcid.conf NetworkManager.conf nm-dhcp-client.conf nm-system-settings.conf wpa_supplicant.conf
很显然,这些配置文件是为需要dbus“设施”的应用,而在服务器上,通常是用不到这些东西。