원격 디스플레이를 활성화하고 원격으로 X 응용프로그램을 실행하세요.

원격 디스플레이를 활성화하고 원격으로 X 응용프로그램을 실행하세요.

데스크톱 컴퓨터를 실행 중입니다.데비안 8.0접근 권한이 있습니다 ssh. 저는 이 컴퓨터에서 원격으로 그래픽 애플리케이션을 실행하고 있으므로 데스크톱 세션을 열어두고 ssh컴퓨터에 들어가서 다음을 실행합니다.

DISPLAY=:0.0 ./my-application

DISPLAY안타깝게도 최근 컴퓨터가 재부팅되고 데스크톱 세션이 종료되어 현재 로그인 화면이 표시되므로 더 이상 액세스할 수 없습니다 kdm-greet.

DISPLAY원격으로 그래픽 세션에 로그인하거나 두 번째 세션을 시작하여 내 애플리케이션을 실행하는 메커니즘이 있습니까 ? 로컬 모니터를 사용하기 위해 X11 전달을 수행할 수 없습니다.

답변1

프로그램과 상호 작용할 필요가 없다면(그러나 어떤 이유로 여전히 X 서버가 필요한 경우) XvFB - 가상 프레임 버퍼 디스플레이를 사용할 수 있습니다. 저는 이것이 빌드 머신에서 UI 프로그램을 실행하는 데 매우 유용하다고 생각합니다(주로 테스트를 자동화하고 여러 언어로 프로덕션 스크린샷을 생성하기 위해).

대부분의 배포판에서는 다음과 같습니다 xvfb.

설명하다:가상 프레임 버퍼 "가짜" X 서버

Xvfb는 디스플레이 하드웨어 및 물리적 입력 장치 없이 컴퓨터에서 실행될 수 있는 X 서버를 제공합니다. 가상 메모리를 사용하여 멍청한 프레임 버퍼를 에뮬레이션합니다. 이 서버의 주요 용도는 서버 테스트용이지만 비정상적인 깊이 및 화면 구성에 대한 클라이언트 테스트, 일괄 처리를 위한 배경 렌더링 엔진으로 Xvfb 사용 및 로드 테스트(보조)를 포함하여 다른 새로운 용도도 발견되었습니다. X 서버를 사용하는 것은 새로운 플랫폼으로 이식되며 실제로는 X 서버가 필요하지 않지만 어쨌든 X 서버가 필요한 응용 프로그램을 실행하는 눈에 띄지 않는 방법을 제공합니다.

패키지에는 xvfb-run 가상 서버 환경에서 X 클라이언트의 자동화를 단순화하는 편의 스크립트도 포함되어 있습니다. 이 편리한 스크립트는 프로그램을 사용하는 데 필요합니다 xauth.

답변2

TigerVNC와 같은 VNC 서버를 설치합니다. 루트로 시작하고 포트를 전달한 다음(이것은 X11 전달이 아니므로 개별적으로 비활성화하지 않는 한 그렇게 할 수 있어야 함) 연결합니다. 로그인 화면이 나타납니다. 로그인. DISPLAY=:0.0 ./my-application그러면 이 시점에서 마치 로컬로 로그인한 것처럼 실행이 정상적으로 진행됩니다.

또는 루트 권한이 없는 경우 기존 DISPLAY에 추가하는 대신 새 DISPLAY를 생성하는 다른 VNC 서버(예: vnc4server)를 사용할 수 있습니다. 그런 다음 프로그램에 제공되는 숫자를 사용하십시오.

관련 정보