Nat*_*hal 8 systemd startx xinit x
我知道这不是人们使用 X 的正常方式。大多数安装说明都会告诉您将类似内容放入startxshell 的配置文件中。不过我想让 systemd 来管理事情。
理想情况下,我会systemctl --user enable x.service在我的用户登录时运行类似的东西,并获取我的资源,.xinitrc从而启动我的 WM。
我执行此操作的所有尝试都给了我错误:
/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
Run Code Online (Sandbox Code Playgroud)
一定有办法做到这一点。任何帮助将不胜感激。
使用startx直接启动到 X11 ,可以自由选择活动用户,请参阅https://vincent.bernat.ch/en/blog/2021-startx-systemd
与Archlinux指南相比,不再需要自动登录TTYx,这是直接图形目标启动。
对于嵌入式/信息亭/机顶盒系统,我将服务更改为自动重新启动,延迟很小
[Unit]
Description=X11 session for bernat
After=graphical.target systemd-user-sessions.service
[Service]
User=bernat
WorkingDirectory=~
PAMName=login
Environment=XDG_SESSION_TYPE=x11
TTYPath=/dev/tty8
StandardInput=tty
UnsetEnvironment=TERM
UtmpIdentifier=tty8
UtmpMode=user
StandardOutput=journal
ExecStartPre=/usr/bin/chvt 8
ExecStart=/usr/bin/startx -- vt8 -keeptty -verbose 3 -logfile /dev/null
#Restart=no
Restart=always
RestartSec=3
[Install]
WantedBy=graphical.target
Run Code Online (Sandbox Code Playgroud)
请记住激活图形目标
sudo systemctl set-default graphical.target
Run Code Online (Sandbox Code Playgroud)
我发现这是创建嵌入式 Linux 时最好的解决方案,例如使用 Debian 的信息亭或机顶盒系统。快速启动,直接进入图形应用程序。
小智 -4
https://wiki.archlinux.org/index.php/Xinit#Autostart_X_at_login
一点点搜索就会有很长的路要走。
if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then
exec startx
fi
将其放入 shell 启动中,在控制台中它将自动启动。
我想如果 startx 有问题,你会回到 tty,它应该可以工作。
| 归档时间: |
|
| 查看次数: |
28322 次 |
| 最近记录: |