![사용자 계정에서 "디스플레이에 연결할 수 없습니다"](https://linux55.com/image/54073/%EC%82%AC%EC%9A%A9%EC%9E%90%20%EA%B3%84%EC%A0%95%EC%97%90%EC%84%9C%20%22%EB%94%94%EC%8A%A4%ED%94%8C%EB%A0%88%EC%9D%B4%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4%22.png)
Qt로 작성된 GUI 애플리케이션이 있고 ssh(또는 Jenkins)를 통해 테스트를 실행하고 싶습니다. 디스플레이 모드에서 실행할 수 있는 사용자 계정은 단 하나뿐입니다(이전에는 ofc) export $DISPLAY=:0
. 다른 사용자 jenkins의 콘솔에 오류가 표시됩니다.
QXcbConnection: Could not connect to display :0
Aborted (core dumped)
이 사용자가 그래픽 모드에서 응용 프로그램을 실행할 수 있도록 하려면 어떻게 해야 합니까? 우분투 14.04를 사용합니다.
답변1
X 가상 프레임 버퍼를 설정하여 GUI 응용 프로그램에 대한 단위 테스트를 실행하기 위해 헤드리스 연속 통합 서버에서 QTestLib를 사용하고 있습니다.
Xvfb :1 &
PID=$!
DISPLAY=:1 make check
kill $PID
답변2
X11vnc
어쩌면 그것이 당신이 원하는 것일 수도 있습니다. vnc를 사용하여 전체 데스크탑을 공유할 수 있습니다.
또는 더 많은 제어를 위해 X11이 디스플레이와 로컬 디스플레이에 별도의 창을 배치하도록 허용한 다음 xauth
보안을 구성하는 데 사용할 수 있습니다. Note xhost
도 동일한 작업을 수행하는 데 사용될 수 있지만 xauth
매우 안전하지 않으며 네트워크의 모든 컴퓨터가 데스크탑에 액세스하고 응용 프로그램을 제어할 수 있습니다(호스트 기반 인증을 사용하는 경우에도).
답변3
@tveronesi 솔루션에 따라 X 서버에 대한 로컬 연결만 허용할 수 있습니다.
xhost +local: