在 Debian 中的用户空间中运行 systemd 单元

在 Debian 中的用户空间中运行 systemd 单元

我正在尝试设置一个单元,以普通用户身份在 Debian Stretch 上运行。我通过 连接到它ssh

我首先以 root 身份执行此操作(用户名是相关用户):

# loginctl enable-linger username

然后当我跑步时:

# systemctl --user

我得到:

Failed to connect to bus: Permission denied

我该如何解决?

答案1

在 Debian Stretch 上,这个问题还有另一种可能的解决方案(至少):如果libpam-systemd未安装该软件包,则 PAM 永远不会触发 systemd 创建 systemd-user 守护程序。

答案2

事实证明,在我安装的 debian stretch 中,XDG_RUNTIME_DIR所有非 root 用户的环境变量配置错误,被设置为/run/user/0

相反,它应该设置为当前用户的 ID。要实现这一点,您可以将以下内容添加到.bashrc

export XDG_RUNTIME_DIR=/run/user/`id -r -u`

相关内容