[RFC] Making D-Bus suitable for being run early during boot
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
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