CentOS 7.0(1406)服务器上的 systemd 用户模式错误

CentOS 7.0(1406)服务器上的 systemd 用户模式错误

我正在尝试在 CentOS 7.0 服务器(未安装 X11)上运行 systemd 用户模式。例如

systemctl --user start hw.service

它的反应是:

Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

如果我添加

export DISPLAY=:0

再次运行,报告:

Failed to get D-Bus connection: /bin/dbus-launch terminated abnormally without any error message

有人可以解释一下吗?顺便说一句,systemctl --version 报告:

systemd 208
+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ

谢谢!

答案1

CentOS 不支持“systemd --user”。[email protected]他们的软件包直接删除了 systemd 的这一部分。(请注意,除其他外,没有。)


也就是说,libdbus 的自动启动错误消息具有误导性,并且您的信息$DISPLAY是错误的。

错误消息实际上是说“[systemctl 无法通过私有地址访问 systemd,因此它要求 libdbus 使用会话总线,但是] 没有明确设置会话总线地址,因此 libdbus 尝试自动启动一个,但也无法做到这一点”。

现在,如果你尝试使用 D-Bus 会话自动启动,那么仅设置 $DISPLAY 是不够的 - 它会期望像 Xorg 这样的 X11 服务器已经在 :1 或类似的位置运行(在这种情况下,$DISPLAY 已经设置好了)。

systemctl --user实际上并不需要自动启动——它希望在特定位置找到 systemd,/run/user/$UID/bus因此/run/user/$UID/systemd/private启动新总线是无用的,因为那里没有 systemd。因此最新版本不再使用自动启动(或 libdbus)。

相关内容