비슷한 문제가 있는 질문이 있다는 것을 알고 있습니다.이와 같이, 그러나 거기에 있는 솔루션은 내 상황에 충분히 구체적이지 않습니다.
X를 사용하여 시작하는 방법 startx
이 있다는 것을 알고 있지만 다음을 수행하고 싶습니다.xinit
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가 루트 권한(setuid로 인해)으로 실행되고 이미 /dev/tty7에 연결되어 있어야 한다는 것을 알고 있는데, 어떻게 이런 일이 발생합니까?
작동하게 하려면 어떻게 해야 하나요?
PS: (동적으로 tty를 할당하는 systemd의 추론은 서비스가 시작될 때 이미 tty에 로그인되어 있기 때문에 여기에는 적용되지 않습니다.)