What program starts dbus-daemon?

Solution 1:

The login manager starts dbus via the Xsession scripts directory. If the use-session-dbus option is set for the Xsession, then the dbus Xsession script is loaded, and it runs dbus-launch --exit-with-session $session_command.

Solution 2:

Starting of the majority of tasks and services during boot including Dbus daemon is handled by Upstart.

Dbus daemon is not started per user session but on mounting the last local filesystem. Upstart job configuration handling starting/stopping/monitoring of Dbus daemon can be found in /etc/init/dbus.conf.

You can use user job to start Hamster on graphical login.