Systemd를 사용하여 로그인할 때 X 서버 시작

Systemd를 사용하여 로그인할 때 X 서버 시작

나는 이것이 사람들이 X를 사용하는 일반적인 방식이 아니라는 것을 알고 있습니다. 대부분의 설치 지침 startx에서는 쉘의 구성 파일과 유사한 것을 추가하라고 지시합니다 . 하지만 나는 일을 관리하기 위해 시스템을 원합니다.

이상적으로는 systemctl --user enable x.service사용자가 로그인하여 리소스를 가져올 때 이와 같은 작업을 실행하여 .xinitrcWM을 시작합니다.

이 작업을 시도하면 모두 오류가 발생합니다.

/usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server

거기~ 해야 하다이를 수행하는 한 가지 방법입니다. 어떤 도움이라도 대단히 감사하겠습니다.

답변1

다음 명령을 사용하여 X11로 직접 부팅하십시오.시작 x, 활성 사용자를 자유롭게 선택할 수 있습니다.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

그래픽 타겟을 활성화하는 것을 잊지 마세요

sudo systemctl set-default graphical.target

저는 Debian을 사용하여 키오스크나 셋톱박스 시스템과 같은 임베디드 Linux를 만들 때 이것이 최고의 솔루션이라고 생각합니다. 그래픽 애플리케이션으로 직접 빠르게 부팅합니다.

답변2

이는 기본적으로 XOrg에 의해 시행되는 보안 제한 사항입니다. 이를 편집 하고 으로 /etc/X11/Xwrapper.config변경하여 비활성화 할 수 있습니다 .allowed_usersconsoleanybody

startxsystemd 단위 파일에서 실행하여 이것을 테스트했는데 제대로 작동합니다 .

원천:동일한 문서말하는라일.

답변3

로그인 관리자 없이 부팅 시 X를 시작하는 시스템 사용자로서 다음 단계를 따릅니다.https://wiki.archlinux.org/index.php/Systemd/User#Automatic_login_into_Xorg_without_display_manager

답변4

https://wiki.archlinux.org/index.php/Xinit#Autostart_X_at_login

약간의 검색은 먼 길을 간다.

if [[ ! $DISPLAY && $XDG_VTNR -eq 1 ]]; then exec startx fi

쉘 시작에 넣으면 콘솔에서 자동으로 시작됩니다.

startx에 문제가 있으면 tty로 돌아가서 작동해야 한다고 생각합니다.

관련 정보