그래서 저는 직장에서 SSH를 통해 CentOS 시스템에서 다른 로컬 CentOS 시스템으로 연결합니다. 우리는 X11과 터미널에서 실행되는 응용 프로그램을 사용합니다. 일부 기능은 터미널에서만 사용할 수 있고 다른 기능은 X11에서만 사용할 수 있습니다. 프로그램은 사용 가능한 X 모니터가 있는지 자동으로 감지하고 사용 가능한 경우 이를 사용합니다. 개선을 요청할 필요 없이 두 버전의 앱 사이를 빠르게 전환할 수 있다면 좋을 것 같습니다. -X
로고나 로고가 없는 수많은 -Y
바탕화면 아이콘/바로가기가 있습니다. -X
또는 플래그 없이 시작된 실행 중인 SSH 세션에서 X11 전달을 활성화/비활성화하는 방법이 있습니까 -Y
?
답변1
사용 중이 -X
거나 실행 중인 경우 원격 측에서 X 터널을 가리키도록 설정됩니다 -Y
. $DISPLAY
이 설정을 해제하면 $DISPLAY
X 응용 프로그램이 X 서버와 통신하는 것을 방지할 수 있습니다. 예를 들어
$ echo $DISPLAY
localhost:10.0
$ xdpyinfo | head -2
name of display: localhost:10.0
version number: 11.0
$ DISPLAY= xdpyinfo | head -2
xdpyinfo: unable to open display "".
$ DISPLAY= xterm
xterm: Xt error: Can't open display:
xterm: DISPLAY is not set
따라서 X Tunneling을 활성화한 후에는 설정을 해제하여 "숨길" 수 있어야 합니다 $DISPLAY
.
SSH 세션에서 입력하여 ~?
수행할 수 있는 변경 목록을 가져올 수 있습니다. 포트 전달을 추가/제거할 수 있지만 실행 및 유사한 작업이 ~C
필요하므로 X 터널을 쉽게 변경할 수 없습니다 . xauth
이벤트 순서는 원격 포트를 다시 localhost:6000(또는 로컬 X 서버가 있는 포트)으로 전달하고 DISPLAY를 설정하고 xauth
권한을 추가하는 것입니다. 쉽지 않습니다!
답변2
허용된 솔루션으로 인해 스크립트가 충돌하는 경우(이는 내 Python 스크립트에서 발생함) DISPLAY
bash 명령을 사용하여 변수를 완전히 제거 할 수 있습니다 unset
. 그건,
unset DISPLAY
https://stackoverflow.com/questions/19930715/how-to-undo-display-export-in-linux
답변3
X11 없이 응용 프로그램을 실행해야 하는 경우 다음을 시도하십시오: 내보내기 DISPLAY=''
X11의 경우 DISPLAY를 그대로 둡니다.