Xorg, X 및 XWayland에서 사용되는 DISPLAY를 감지하는 방법

Xorg, X 및 XWayland에서 사용되는 DISPLAY를 감지하는 방법

Xorg 서버를 실행하는 데 사용되는 프로세스 이름이 최근 RHEL에서 X에서 Xorg로 변경되었으며, 최근 새로운 Wayland 서버와 함께 XWayland가 도입되었습니다. 이전 버전에서는 Xorg 프로세스 및 관련 명령줄 매개변수가 다음과 같았습니다.

/usr/bin/X -nr -nolisten tcp :0 vt1 -auth /var/run/kdm/A:0-uyAhRO

X 파일은 실제로는 /usr/bin/Xorg에 대한 심볼릭 링크일 뿐입니다. 그런 다음 RHEL8에서는 명령이 다음과 같이 변경됩니다.

/usr/libexec/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3

이 주제는 다음과 같은 질문을 제기합니다.

1) 이전 버전에서 Xorg 대신 X를 프로세스 이름으로 사용하는 이유는 무엇입니까?

2) 최신 버전에서 DISPLAY 매개변수(:0)가 제거된 이유는 무엇입니까?

3) 프로세스 명령줄 인수를 읽어 Xorg 서버가 실행 중인 모니터를 확인할 수 있습니다. 더 이상 작동하지 않습니다. 최신 배포판에서 이 작업을 수행해야 한다면 어떻게 해야 합니까?

4) 프로그램 환경에서 DISPLAY 변수를 받았는데 Xorg 디스플레이와 일치하는지 확인해야 합니다. Xorg와 동일한 모니터에서 프로그램을 실행해야 하기 때문입니다. 이 검사를 수행하는 것이 여전히 관련이 있습니까? 아니면 지금 ":0"이라고 가정할 수 있나요?

답변1

1) 원래의 무료 X 서버가 어느 단계에서 어느 정도 상업적이 되었기 때문에 무료 변종인 XFree86이 이 서버에서 분리되었고 약간의 정치와 드라마 후에 X.org가 되었습니다.위키피디아약간의 역사가 있지만 논란이 많은 모든 역사와 마찬가지로 저자의 편견을 조심하십시오.

그러나 컴퓨팅의 경우 그것은 모두 오래전 일이었습니다. 어쨌든 바이너리 이름은 결국 (분명히 훨씬 나중에) 에서 로 변경되었으므로 XRHEL Xorg뿐만 아니라 모든 배포판도 이를 따라야 했습니다.

2) 읽어보시면 man Xorg이제 선택적인 매개변수입니다. 기억이 틀렸을 수도 있지만 예전에는 필수였던 것 같아요. 스크립트가 이를 지정하지 않아도 된다면 더 간단할 것입니다.

3) 예를 들어, 어떤 프로세스가 사용되는지 (또는 배포판이 X에 대한 unix 도메인 소켓을 어디에 두는지) lsof알아내는 데 사용할 수 있습니다 ./tmp/.X11-unix/X0

4) 아니요, 이것을 확인하지 마세요. 한 번. DISPLAY설정된 경우 이 디스플레이가 사용된다고 가정합니다 . X 전달을 사용하여 ssh를 통해 로그인하는 12명의 사람들이 로컬 컴퓨터에서 실행 중인 5개의 X 서버가 있든, TCP 소켓을 통해 로컬 LAN을 통해 10개의 X 서버에 추가로 액세스할 수 있습니다(현재는 드물지만) DISPLAY. 사용자는 가능한 모든 디스플레이 중에서 원하는 것입니다(그리고 그가 사용하도록 승인된 유일한 디스플레이일 수도 있습니다).

이를 원하지 않는 경우 거의 모든 프로그램에는 -display이를 재정의하는 데 사용할 수 있는 명령줄 인수가 있습니다.

특정 디스플레이에서 X 서버에 접속할 수 없으면 접속할 수 없으며 프로그램은 오류 메시지와 함께 중지됩니다. 하지만 이에 대해 추가로 확인할 필요는 없습니다.

관련 정보