프로그램 인스턴스를 실행할 X 디스플레이를 선택할 수 있습니까?


10

시스템에서 여러 개의 X Windows가 실행중인 경우 특정 창에서 프로그램을 실행할 수 있습니까? Window를 어떻게 식별하고 프로그램을 실행할 수 있습니까?

그런 프로그램을 실행하는 데 필요한 권한이 있다고 가정합니다.


답변:


15

X 프로그램은 DISPLAY환경 변수를 보고 어떤 X 세션과 통신해야하는지 알고 있습니다.

먼저 DISPLAY프로그램을 실행하려는 X 세션에서 설정 한 내용을 찾아야 합니다. echo $DISPLAY해당 X 세션에서 X- 터미널 내부 에서 명령을 실행하여이를 수행하십시오 . 일반적으로 :0.0출력되는 것과 같은 것을 얻습니다 .

is xclock의 X 세션에서 우수한 프로그램 프로그램 을 시작하고 싶지만 콘솔에서이를 수행하려고한다고 가정 해 봅시다. 그런 다음 Alt-Ctrl-F1을 눌러 해당 콘솔로 이동 한 후 다음을 입력하십시오.DISPLAY:0.0

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command

그런 다음 Alt-Ctrl-F7 또는 Alt-Ctrl-F8 (또는 Linux 특징에 따라 다른 F 키)을 눌러 X로 돌아가서 거기에있는 새로운 예쁜 벽시계를보십시오.

사실 동일한 컴퓨터의 모든 쉘 에서 (SSH, X 세션, 콘솔 등) 위 DISPLAY=:0.0의 명령 을 실행할 수 있습니다 . 명령 전에 지정한 사실 xclock은 항상 창이 나타납니다. 동일한 X 세션.

실제로 – X 프로그램이 그것을 보는 사실과는 별도로, DISPLAY변수 에는 특별한 것이 없습니다 . 일반적으로 X 터미널에서 프로그램을 시작할 때는 DISPLAY이미 설정되어 있기 때문에 올바른 위치에서 시작 합니다.

위의 명령을 사용하는 대신 먼저 설정 DISPLAY하고 실행 하여 명령을 두 개로 나눌 수도 있습니다 xclock. 이 경우 DISPLAY해당 쉘을 닫을 때까지 설정이 유지되며 여기에서 시작된 모든 후속 X 프로그램은와 동일한 X 세션에서 열립니다 xclock.

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock

1
쉘 변수를 먼저 환경으로 내 보내지 않으면 마지막 비트가 작동하지 않습니다.
Ignacio Vazquez-Abrams 1

나는 생각 DISPLAY이 쉘 (이 모두 작동에 의해 수입되기 때문에, 기본적으로 내보내기로 설정됩니다 zshdash사용하지 않고 나를 위해 export). 당신이 직장에 2 개 개의 라인 버전을 얻을 수없는 경우에, 네, 교체 시도 DISPLAY=:0.0와 함께 export DISPLAY=:0.0.
zrajm

1

일반적으로 X 클라이언트 프로그램은 DISPLAY환경 변수를 사용하여 연결할 X 서버 표시를 알고 있습니다. 일부 프로그램 -displayDISPLAY환경 변수 를 재정의하는 데 사용할 수 있는 명령 줄 매개 변수 ( 또는 이와 유사한 것) 도 허용 합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.