15

When I run this commande in my Debian 9 VPS : systemctl --user I have this following error : Failed to connect to bus: No such file or directory

This error appear on all users except the user root.

I already have the dbus dbus-user-session systemd libsystemd-dev libsystemd

This is my env :

USER=web
LOGNAME=web
HOME=/home/web
PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
MAIL=/var/mail/web
SHELL=/bin/zsh
SSH_CLIENT=[CENSORED] 23459 22
SSH_CONNECTION=[CENSORED]  23459 [CENSORED]  22
SSH_TTY=/dev/pts/0
TERM=xterm
XDG_SESSION_ID=1824414
XDG_RUNTIME_DIR=/run/user/1000
SHLVL=1
PWD=/home/web
OLDPWD=/home/web
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:

I can't find a solution in the 3 first page of searching in Google.

Thank you for help!

3
  • I had that problem and solved it by installing openssh-server, then rebooting Oct 13, 2020 at 20:35
  • 1
    I also get that error message when prepending with sudo while using the --user flag. Oct 13, 2020 at 21:15
  • Du you have libpam-systemd installed?
    – xebeche
    Mar 24, 2021 at 23:21

4 Answers 4

19
  1. There must be a /lib/systemd/systemd --user process for the user you're running this for. Check with: ps aux | grep systemd. In my case the process didn't exist because I was trying to setup background services on another account, and that user wasn't logged in (the systemd --user process is normally launched at login). The solution was to run sudo loginctl enable-linger $otherUser, which keeps the systemd --user process running at all times.

  2. XDG_RUNTIME_DIR must be set. In my case it wasn't, so my command had to be sudo -u $otherUser XDG_RUNTIME_DIR=/run/user/$(id -u $otherUser) systemctl --user.

2
  • A year later, and this is still valid. Thanks! I was not affected by the first point but I was by the second one. (Running Ubuntu 20.04)
    – Adrien
    Nov 9, 2021 at 12:55
  • Main problem was linger for me. It was never clear that if said user LOGS OFF, all systemd --user services wills top automatically by default. To keep them running even with the user logs off, enable linger as the user. Check linger status loginctl show-user yourusername | grep Linger, enable it loginctl enable-linger yourusername
    – Dave
    Jan 27 at 20:30
1

Most likely you have forgotten to enable pam in the openssh configuration?

grep UsePAM /etc/ssh/sshd_config 
UsePAM yes

The part responsible for starting the user session is pam_systemd:

grep -R systemd /etc/pam.d/system-login 
-session   optional   pam_systemd.so debug

If you habe enabled debugging (debug pam option). You should see debug messages like:

$ journalctl -u sshd  -g pam_systemd
Jun 17 17:41:05 shaun sshd[3575212]: pam_systemd(sshd:session): pam-systemd initializing
Jun 17 17:41:05 shaun sshd[3575212]: pam_systemd(sshd:session): Asking logind to create session: uid=1000 pid=3575212 service=sshd type=tty class=user desktop= seat= vtnr=0 tty= display= remote=yes remote_user= remote_host=192.168.178.34

logind starts your user instance.

4
  • Pam is already on Jun 16, 2020 at 21:48
  • I added the pam debug option to the original answer. So you can check what is going on in the system journal. Jun 17, 2020 at 15:51
  • 2
    /etc/pam.d/system-login might also be found at /etc/pam.d/systemd-user (Ubuntu 18.04 LTS here).
    – tanius
    Jun 19, 2020 at 1:44
  • (And I think there's a tiny mistake in your answer: in the second code block, -session should be just session, no?)
    – tanius
    Jun 19, 2020 at 1:48
0

This is how I resolved it:

echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/0/bus

Then in my script,

export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/0/bus"
systemctl --user restart my-service
0

I faced the same issue recently. The fact is that service systemd-logind was not started.

Starting following service did the trick

sudo service systemd-logind start

3

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.