[Pkg-freeipa-devel] Bug#769446: certmonger: Failed to issue method call: Unit dbus.socket failed to load: No such file or directory.
smcv at debian.org
Sat Nov 22 14:35:22 UTC 2014
On Thu, 13 Nov 2014 at 23:30:00 -0800, Cameron Norman wrote:
> On Thu, 13 Nov 2014 17:59:51 +0100 Benjamin Drung
> <benjamin.drung at profitbricks.com> wrote:
> > Setting up certmonger (0.75.14-2) ...
> > Failed to issue method call: Unit dbus.socket failed to load: No such file
> or directory.
> > invoke-rc.d: initscript certmonger, action "start" failed.
> > [...]
> > certmonger should probably depend on dbus.
> Please do not do that. Both the Upstart job and init script work just fine
> without D-Bus installed.
> Instead, I think that the certmonger systemd service should change its type
> from dbus to forking and remove the `-n` option. Alternatively, it could use
> Type=simple and keep the `-n` option but then you do not get readiness. Not
> sure if that is critical.
If you don't want to depend on dbus then changing the Type to forking
(and removing the -n option) seems best. The service already has the
necessary PIDFile= line to be able to tell systemd which of its processes
after forking is to be considered the main one.
> I think you can still keep dbus based activation without Type=dbus and a
> without a dependency on dbus, but you should ask the systemd maintainers
> about that.
If you leave the BusName= line intact, that provides the prerequisite
for the systemd side of D-Bus system service activation.
However, this seems to be irrelevant, because certmonger doesn't
install anything in /usr/share/dbus-1/system-services, so dbus-daemon
will never try to service-activate it on-demand anyway; anything
communicating with it over D-Bus is only going to work because the init
system already started it.
There appears to be an attempt to provide system service activation in
but (a) it isn't currently installed, (b) I think it may be starting the wrong
binary (certmonger-session), and (c) it does not have the SystemdService
key, so dbus-daemon would try to run it as a child process (via a setuid
helper, dbus-daemon-launch-helper) instead of asking systemd to do it.
Here is an example of a correct file for /usr/share/dbus-1/system-services
with systemd integration:
More information about the Pkg-freeipa-devel