On Tue, Apr 11, 2023, 03:41 Chandler <ad...@genome.arizona.edu> wrote:
> systemd has been working great here, system-wide as well as in all user > instances except one. I'm not exactly sure what all the steps are in > the process to get a systemd user instance running. The directory > /run/user/$UID was not being created, though. > > I made some progress by running `systemctl start > user@<username>.service` and the /run/user/$UID was created. > > `systemctl --user status` returns `Failed to connect to bus: No such > file or directory`. XDG_RUNTIME_DIR is not being set, but a command > like `XDG_RUNTIME_DIR=/run/user/$UID systemctl --user status` runs > successfully, so I think it's down to this last piece. > The same pam_systemd module registers a "session" with logind (which triggers the creation of runtime directory as well as the startup of user@<uid>.service; note: *not* user@<username>) and sets XDG_RUNTIME_DIR after the session has been registered. Check whether your tty or display is shown in the `loginctl` session list. Note that logind does not allow registering sessions from within another session, so tools like `su` won't be able to do that (except for some situations where they can but you wouldn't want them to) – only a fresh login gets you a session. So usually step 1 is to not use `su` or `sudo` here – run `machinectl shell foo@` if you need a shell for a local user.