我使用 Debian 9 通过 ssh 连接到 google 计算实例。当我尝试任何systemctl --user ...
命令(systemctl --user status
例如)时,我收到错误:“无法连接到总线:没有此文件或目录”。
我尝试设置 XDG_RUNTIME_DIR=/run/user/$(id -u) 并发现 /run/user 中没有创建目录。
我还安装了 dbusapt install dbus
并确保 dbus.service 正在运行(它最初没有安装)。
sshd_config 默认有UsePAM yes
。
答案1
解决:
sudo apt install --reinstall libpam-systemd
安装了新软件包:dbus、libdbus-1-3
注销/登录后systemctl --user status
,其他“systemctl --user”命令有效。无需设置“XDG_RUNTIME_DIR”。
答案2
我在重新启动 pipewire 服务时遇到了类似的问题,解决方案是在 systemctl 前面删除 sudo。 https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1608
答案3
启用逗留功能对我解决您的情况有帮助:
$ loginctl enable-linger $USER
现在我可以看到我的用户$XDG_RUNTIME_DIR
被创建和使用:
$ ls -lant $XDG_RUNTIME_DIR
total 0
drwxr-xr-x 6 1177 1177 160 Aug 5 11:36 systemd
drwx------ 8 1177 1177 220 Aug 5 11:36 .
drwx------ 3 1177 1177 60 Aug 5 11:36 dbus-1
drwx------ 3 1177 1177 60 Aug 5 11:33 containers
drwx-----T 2 1177 1177 40 Aug 5 11:33 libpod
drwx------ 2 1177 1177 140 Aug 5 11:33 gnupg
srw-rw-rw- 1 1177 1177 0 Aug 5 11:33 pk-debconf-socket
drwxr-xr-x 2 1177 1177 60 Aug 5 11:33 podman
srw-rw-rw- 1 1177 1177 0 Aug 5 11:33 snapd-session-agent.socket
srw-rw-rw- 1 1177 1177 0 Aug 5 11:33 bus
drwxr-xr-x 3 0 0 60 Aug 5 11:33 ..
这要归功于podman
的华丽警告信息中的这个建议:
$ podman run -u 1177 ubuntu bash -c "whoami"
WARN[0000] The cgroupv2 manager is set to systemd but there is no systemd user session available
WARN[0000] For using systemd, you may need to login using an user session
WARN[0000] Alternatively, you can enable lingering with: `loginctl enable-linger 1177` (possibly as root)
WARN[0000] Falling back to --cgroup-manager=cgroupfs
WARN[0000] The cgroupv2 manager is set to systemd but there is no systemd user session available
WARN[0000] For using systemd, you may need to login using an user session
WARN[0000] Alternatively, you can enable lingering with: `loginctl enable-linger 1177` (possibly as root)
WARN[0000] Falling back to --cgroup-manager=cgroupfs
1177