[Assist] systemctl --user status Failed to get D-Bus connection: Connection refused

Luke Shumaker lukeshu at sbcglobal.net
Fri Apr 4 13:39:34 GMT 2014

At Fri, 04 Apr 2014 01:26:35 -0600,
Jorge Araya Navarro wrote:
> Here:
>         <(jorge at abril)---(vie abr 04 01:24:02)>
>         [~][3] $ LC_ALL=C stat /run/user/1000/systemd/
>         ...
>         <(jorge at abril)---(vie abr 04 01:24:09)>
>         [~][4] $ LC_ALL=C stat /run/user/1000/systemd/private
>         ...
> So far, so good... and so confuse! What could be going wrong here?

Did you also check that `systemctl --user status` was still giving you
the D-Bus error message?  Also, if you had run `systemctl --user
exit`, and haven't logged out since, it is still dissabled.

To clarify, when I say "log out", I mean log out of all user sessions.
Verify that this was the case when you log back in by running
`loginctl list-sessions`, and verifying that there is only one current
session for your user.  It is possible that a background process is
keeping an old session alive.  For example, I discovered that if I
started X, then lxpanel would start menu-cached in the background,
which would keep running and cause that session to persist even after
I logged out.

> El jue, 03-04-2014 a las 23:27 -0400, Luke T.Shumaker escribió:
> > At Thu, 03 Apr 2014 15:22:48 -0600,
> > Jorge Araya Navarro wrote:
> > > I followed the
> > > instructions from Arch Linux wiki ( as read here
> > > https://wiki.archlinux.org/index.php/Systemd/User ),
> > 
> > I'm not saying not to read that, there's some good stuff there, but on
> > a scale of "garbage" to "quality documentation", that page is closer
> > to the former.
> Haha, very mean!

To be fair, it's because it's all changing so quickly.  There's
"Setup" [for < 206], and "Setup since systemd 206"; BOTH of which
contain information that is not true in systemd 212.  It's just hard
to keep up, and update the entire page.

Basically, everything it says about setting up D-Bus is false.
dbus.service/dbus.socket are now obsolete; this happens by default
$XDG_RUNTIME_DIR/systemd/private instead of $XDG_RUNTIME_DIR/bus or
$XDG_RUNTIME_DIR/dbus/user_bus_socket (both of which are mentioned in
the "since 206" section).

That said, the DBUS_SESSION_BUS_ADDRESS environment variable should
probably not be set.  With no value, everything should just find the
correct address.  The systemd people are working to make this all
simpler and not require these extra things, but sometimes that means
yesterday's kludges break.

The variable is is set by /etc/X11/xinit/xinitrc.d/30-dbus, but that
doesn't seem to mess anything up on my box.  If you are using a
graphical login, the XDM or DE's session manager may be messing with
D-Bus and actually mangaging to mess it up.  Try logging into a TTY
when debugging this.

Happy hacking,
~ Luke Shumaker

More information about the Assist mailing list