X11 Gnu 화면을 통한 전달이 가능합니까? GNU Screen을

나는 GNU Screen을 끊임없이 사용합니다. 그러나, 나는 ssh-ing 할 때 X11 앱이 화면을 통해 앞으로 나아갈 수 있는지 알아 내려고 노력했습니다 (단어입니까?). 현재 화면을 통해 ‘gedit’을 실행하려고하면 클라이언트가 아닌 ‘서버’컴퓨터에서 열립니다. 화면 밖에서 똑같이하면 모든 것이 정상입니다. 그러나 화면을 사용할 때 모든 것이 잘되기를 바랍니다!

감사!

추신 : 문제를 봤는데 xmove에 대한 언급이 있지만 우분투에서 xmove가 포함 된 패키지를 찾을 수없는 것 같습니다. (우분투 10.10)



답변

SSH로 로그인 한 후 화면에 다시 연결하기 전에 수동으로이를 수행하려면 DISPLAY 환경 변수를 확인하십시오.

echo $DISPLAY

화면에 다시 연결 한 후 환경 변수를 명시 적으로 설정하십시오.

export DISPLAY=:N.0

여기서 : N.0echo첨부 전에 보여 지는 것 입니다. 일부 응용 프로그램은 세션 D- 버스와 통신 할 것으로 예상 할 수 있으므로 SSH 연결을 통해 전송하기가 좀 더 복잡하므로 완벽하지 않습니다.


답변

저장소에 xpra라는 프로그램이 있습니다 .x11의 gnu 화면과 같습니다. 작업하기가 너무 어렵지 않습니다.

X 영구 원격 애플리케이션

Xpra는 X 응용 프로그램 용 GNU Screen의 기능을 제공합니다.

사용자는 로컬 컴퓨터에서 원격 X 응용 프로그램을보고 실행중인 응용 프로그램의 상태를 잃지 않고 원격 컴퓨터에서 연결을 끊었다가 다시 연결할 수 있습니다.


답변

Byobu는 자동으로 ssh 및 gpg 에이전트를 다시 연결합니다. 도움이된다면 표시 변수를 다시 첨부 할 수 있습니다 …


답변

이것이 byobu를 실행할 때 작동시키는 방법입니다

“_byobu_source ..”행 앞에 .bash_login에 다음 행을 추가하십시오 .

echo $DISPLAY > $HOME/.display.env

그런 다음이 줄을 .bashrc에 추가하십시오 .

if [ ! -z ${SSH_CONNECTION+x} ]; then
  export DISPLAY=$(cat $HOME/.display.env)
fi


답변

문제는 환경 변수 XAUTHORITY가 화면 세션에서 유지되지 않는 것 같습니다. 내 .bashrc에 다음을 추가 하여이 문제를 해결했습니다. 나는 이것이 필요하다고 생각하지 않았지만 당신이해야 할 일을한다고 생각합니다.

# ensure X forwarding is setup correctly, even for screen
XAUTH=~/.Xauthority
if [[ ! -e "${XAUTH}" ]]; then
 # create new ~/.Xauthority file
 xauth
fi
if [[ -z "${XAUTHORITY}" ]]; then
 # export env var if not already available.
 export XAUTHORITY="${XAUTH}"
fi

나는 이것이 최선의 해결책이거나 가장 간결하다고 기대하지는 않지만 작동합니다.


답변

FreeNX는 원격 디스플레이 작업을위한 훌륭한 앱입니다.


답변

@harre 제안을 바탕으로, 이것이 적어도 Putty를 통한 RHEL에 가장 적합한 솔루션이라는 것을 알았습니다. 나는 VAR을 보유하고 파일을 만드는 것보다 더 나은 방법이 알고 있지만,이 얻을 수있는 게이트 밖으로 작동 X11에 액세스 할 수 있도록 DISPLAY를 통해로드 할 때 gnu screen.

자동화 솔루션

추가 .bashrc(또는 .bash_profile사용 사례에 따라)

#.bashrc
if [ -f ~/etc/.bash-screen-x11 ]; then
   echo $DISPLAY > $HOME/.display.env
   source ~/etc/.bash-screen-x11
fi

그런 다음 다음 파일을 추가하십시오 (또는 경로 선택)

#~/etc/.bash-screen-x11
# sets back display var.
if [ -z $STY ]; then
  export DISPLAY=$(cat $HOME/.display.env)
fi