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

Ral*_*ang 4 linux centos systemd

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

systemctl --user start hw.service
Run Code Online (Sandbox Code Playgroud)

它的反应是:

Failed to get D-Bus connection: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Run Code Online (Sandbox Code Playgroud)

如果我添加

export DISPLAY=:0
Run Code Online (Sandbox Code Playgroud)

再次运行,它报告:

Failed to get D-Bus connection: /bin/dbus-launch terminated abnormally without any error message
Run Code Online (Sandbox Code Playgroud)

任何人都可以阐明这一点吗?顺便说一句, systemctl --version 报告:

systemd 208
+PAM +LIBWRAP +AUDIT +SELINUX +IMA +SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ
Run Code Online (Sandbox Code Playgroud)

谢谢!

use*_*686 8

CentOS 不支持“systemd --user”。他们的软件包完全删除了 systemd 的那部分。(请注意如何没有user@.service,等等。)


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

错误消息确实说“[systemctl 无法在私有地址到达 systemd,因此它要求 libdbus 使用会话总线,但是] 没有明确设置会话总线地址,因此 libdbus 尝试自动启动一个,但不能要么这样做”。

现在,如果你试图使用d总线的AutoLaunch会话,那么就设置$ DISPLAY是不够的-它会像期待的的Xorg X11服务器已经在运行:1或例如(在这种情况下,$ DISPLAY会已经设置)。

systemctl --user并不真正想要自动启动——它希望在特定位置找到 systemd,/run/user/$UID/bus并且/run/user/$UID/systemd/private——因此启动新总线将毫无用处,因为它不会在那里使用 systemd。所以最近的版本不再使用自动启动(或 libdbus)。