帮助解决使用 systemd 作为用户服务启动 X 的错误

帮助解决使用 systemd 作为用户服务启动 X 的错误

我知道有一个问题有类似的问题,像这个,但是其中的解决方案对于我的情况来说不够具体。

我知道有一种方法可以使用startxandxinit启动X logind,但我想这样做:

对于上下文:我正在使用 OpenSUSE Tumbleweed 和 Systemd

我正在尝试使用自定义用户目标和用户服务在从特定 tty 登录时启动一堆程序,其中一个服务是 X 服务器。目前,我有以下服务文件位于~/.config/systemd/user/Xserver.service,这意味着在 vt7 上启动一个空的 Xorg 服务器:

[Unit]
Description=Starts the X server
After=default.target

[Service]
Type=simple
ExecStart=/usr/bin/X vt07 :0
NoNewPrivileges=false

[Install]
# Irrelevant as of time being, just some custom targets I plan on isolating later.

然而,当尝试启动此服务时,( systemctl --user start Xserver.service) 失败,退出代码为 1,在阅读 Xorg 日志时,我发现他们说“切换 VT 失败”。

我知道此时 X 应该以 root 权限运行(由于 setuid),并且已经连接到 /dev/tty7,那么这是怎么发生的呢?

我能做些什么来让它发挥作用?

PS:(systemd 动态分配 tty 背后的推理并不适用于此,因为在该服务启动时我已经登录到 tty)

相关内容