your dbus service is started but waiting (pid=waiting). The service wait for the DISPLAY variable to be set. Take a look at the source of the frontend of the service, to get easily you can do:
cat $(66 status -nf source dbus)
you will see:
[Event]
EventType = user
On = ( env.DISPLAY env.WAYLAND_DISPLAY )
Do = restart
So, here it will wait for the DISPLAY or WAYLAND_DISPLAY to be set as environment variable before to be able to start.
This variable should be set at start of your destkop e.g. by a display manager. This is depending how you start your desktop.
by startx: you need to export the variable, check the file /etc/X11/xinit/xinitrc.d/66-env.sh, it should contain something like this
#!/usr/bin/sh
66 env import DISPLAY XAUTHORITY
dbus-update-activation-environment DISPLAY XAUTHORITY
and your ~/.xinitrc need to contain at least:
#!/usr/bin/bash
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
[ -x "$f" ] && . "$f"
done
unset f
fi
the 66 env command will export the DISPLAY variable with its correct value. the dbus service will react when the DISPLAY variable is known.
This variable is important for a large number of user service, without it most of user service will fail to start under X/wayland session.
When you call startx, the command will define e.g. DISPLAY=:0, then it will start every fonction at /etc/X11/xinit/xinitrc.d with all necessaries variable as the DISPLAY one. 66 env will find this variable and write the corresponding value at /run/66/environment/<uid> (e.g. cat /etc/66/environment/1000/DISPLAY), then emit the env.DISPLAY message. The dbus service will found this emit and react:"the DISPLAY variable is now set, i can start".
Note: when you service is waiting, instead of doing restart, try : 66 emit env.DISPLAY, and you will see that the service start as you do with the command restart. You can also know the variable exported by 66 env doing 66 env list.