Find out the owner of a DBus service name

d-busfreedesktopnotifications

I can't find a way to find what program implements the org.freedesktop.Notifications service. Is it possible to ask DBus to tell me what program provides it?

The reason for asking this question is quite banal: I found a new desktop notifications daemon I'd like to use, but it won't start and instead complains with this message

Name Lost. Is Another notification daemon running?

However, I am unable to determine what program is holding the name. I already uninstalled every other notification daemon, restarted X server, and even rebooted the machine.

However, when I run this command:

dbus-send --session --dest=org.freedesktop.DBus --type=method_call \
--print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

string "org.freedesktop.Notifications" is present in the output, so something is holding the name, and I can't start my desired daemon.

Best Answer

The d-bus debug utility d-feet which is available as a package in many systems seems to be able to find the process id and command providing a service. For example, I ran it on a Fedora 23 xfce4 X11 systemd platform and selected Session Bus and entered the service name org.freedesktop.Notifications. It introspected the service, activating it, and showed the pid and /usr/lib64/xfce4/notifyd/xfce4-notifyd command:

before activation

after activation

Related Question