Find out the owner of a DBus service name
You can get the caller PID
via org.freedesktop.DBus.GetConnectionUnixProcessID
:
gdbus call --session --dest org.freedesktop.DBus --object-path / --method \
org.freedesktop.DBus.GetConnectionUnixProcessID org.freedesktop.Notifications
prints
(uint32 737,)
so there's your PID
. If you prefer dbus-send
(as gdbus
is GNOME specific) then:
dbus-send --session --print-reply --dest=org.freedesktop.DBus / \
org.freedesktop.DBus.GetConnectionUnixProcessID string:org.freedesktop.Notifications
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: