[RFC] Making D-Bus suitable for being run early during boot

Lennart Poettering mzqohf at 0pointer.de
Thu Jul 8 18:09:53 PDT 2010


I'd like to make it possible to run dbus earlier during boot, as one
of the first daemons that are run (i.e. in parallel with udev and
systemd, and other code as early as that).

For that to happen a few things need to be fixed, and I'd like to hear
your comments about this.

a) /usr/share/dbus-1/system-services must be moved to
   /lib/dbus/system-services. Probably uncontroversial, since many
   distributions already install D-Bus in /bin, but this dir was simply
   forgotten. People should install their service files to 
   `pkg-config dbus-1 --variable=system_bus_services_dir`, and for those
   which don't we could provide a compat symlink for a while.

b) The system bus should become an abstract namespace socket by
   default. This would require changing of the spec. This would allow us
   to run dbus without writable /var/run. We could provide compat for a
   while, so that we fallback to the old socket name in the client if we
   cannot find the abstract socket. The socket path is already
   configurable at compile time, even though it's value actually mandated in
   the spec.

c) And now, the one I am a bit more puzzled about: what to do with the
   machine-id file. /var is not necessarily available during boot. /etc
   however is. Due to that I'd vote for moving that file to /etc and
   replacing /var/lib/dbus/machine-id by a symlink to it. This has some
   drawbacks, for example, the admin might think that the file is
   something to configure or so. However, I cannot think of a better
   place for this. Ideas? Opinions?


Lennart Poettering - Red Hat, Inc.

More information about the dbus mailing list