![현재 실행 중인 애플리케이션의 표시를 변경하는 방법](https://linux55.com/image/120948/%ED%98%84%EC%9E%AC%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B8%20%EC%95%A0%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98%EC%9D%98%20%ED%91%9C%EC%8B%9C%EB%A5%BC%20%EB%B3%80%EA%B2%BD%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
중앙 서버에 여러 개의 모니터가 켜져 있습니다. 특정 플랫폼에서 실행 중인 X-window 응용 프로그램을 DISPLAY
다른 플랫폼으로 "이동"할 수 있습니까 DISPLAY
? 이것이 어떻게 달성될 수 있습니까?
xpra
여러 개의 원격 디스플레이를 사용하고 있습니다 .
답변1
DISPLAY
두 가지 이유로 실행 중인 X Window 응용 프로그램을 변수에 의해 결정된 다른 모니터로 이동할 수 없습니다 .
첫 번째는실행 중인 프로세스의 환경을 변경하는 것은 어렵습니다., 그리고 변동을 고려하는 방식으로 이를 안정적으로 수행하는 것은 불가능합니다.
두 번째는 DISPLAY
변수가 단지 입력일 뿐이며 일반적으로 애플리케이션이 시작될 때만 고려된다는 것입니다. X 애플리케이션 호출XOpenDisplay
초기 단계에서는 직접적으로나 간접적으로, 그리고 (또는 오히려,XTOpenDisplay
)은 DISPLAY
고려해야 할 사항입니다(필요한 경우 X 서버를 지정하여 다른 방법으로 사용할 수 있음). X 서버에 대한 연결을 나타내는 불투명 구조에 대한 포인터를 XOpenDisplay
반환합니다 Display
. 이는 이제부터 X 서버와 통신하는 데 사용되는 모든 것입니다. 나중에 변경된 값은 DISPLAY
아무런 영향을 미치지 않습니다. 애플리케이션은 어떻게든 값이 변경되었음을 인식하고 X 서버에 대한 연결을 닫은 다음 새 연결을 열어야 합니다.
이 두 가지 점을 종합하면 응용 프로그램이 원하지 않을 때 디스플레이를 변경하는 것은 물론이고 디스플레이를 변경할 수 있는 응용 프로그램을 작성하는 것조차 매우 어렵다는 것을 의미합니다(왜냐하면 그렇게 하도록 설계되었기 때문입니다).