두 번째 시스템에서 GUI 프로세스를 시작하려고합니다.


1

배경 :

나는 여분의 컴퓨터 / 스크린에서 지역 대학이 processing.org/java를 사용하여 여러 대의 컴퓨터에 렌더링을 배포하는 것을 돕고 있습니다. 그러나 여전히 버그가있어 가끔 클라이언트를 다시 시작해야합니다.

문제 :

현재 서버에서 원격으로 클라이언트 Java 응용 프로그램을 다시 시작하는 방법을 파악하는 데 문제가 있습니다. 참고 : 클라이언트는 듀얼 스크린에 직접 연결됩니다.

조사 :

클라이언트 - 서버 모델을 작동시킬 수있는 AWS / EC2에서 유사한 환경을 재현했지만 GUI 클라이언트를 원격으로 시작할 수 없습니다. 나는 계속 간다.

디스플레이를 열 수 없습니다.

특정 문제 :

현재 서버에서 다음을 사용합니다.

ssh ubuntu @ guiclient1 "export DISPLAY = : 0; cd ~ / wallclient /; xclock & amp;"

특별한 :

x2go를 사용하여 동일한 GUI 바탕 화면을 모니터링합니다. xauth / xhost 특정 구성을 수행하지 않았습니다. 아직 이와 관련된 어떠한 문제도 보지 못했습니다.

어떻게 다르게 구성해야합니까? 온라인에서 많은 도움을 얻지 못했습니다. 서버로 포트 포워딩을하고 싶지 않습니다. 이것은 대부분의 질문에 답하는 것입니다.

감사


지금 당장 어떤 프로그램이 어떤 컴퓨터에서 실행되고 있는지 불분명합니다. 각 기계에 어떤 하드웨어가 연결되어 있는가? 어떤 쉘이 어떤 머신에서 (직접 또는 ssh로) 실행 중인지에 대한 정보를 제공합니다. 따라서 아래의 조언은 반드시 일반적입니다. 더 나은 조언을 원한다면 반드시해야 할 것입니다. 대단히 특유한. 이름과 목적별로 컴퓨터를 나열하고 어떤 컴퓨터에서 어떤 셸을 여는 지 알려주십시오.
dmckee

답변:


0

네트워크상의 X에서 직접 연결

X는 원격 클라이언트 {*}가 특정 디스플레이를 사용할 수있게하는 권한 모델을 가지고 있습니다. 에 대한 맨 페이지 읽기 xhost, 그러나 짧은 버전은

server$ xhost remote_client

대화식으로 허용 remote_client 귀하의 화면을 사용합니다.

그런 다음 방금 실행 한 클라이언트에서

client$ xeyes

직접 ssh

ssh를 통해 연결하는 것은 또 다른 문제입니다. 당신은 -X 또는 -Y 또는 .ssh / config에 해당 값을 설정하십시오 ( ForwardX11 -X). 그런 다음 ssh 클라이언트가 적절한 값을 설정해야합니다. DISPLAY 너는 그걸로 엉망이되어서는 안된다.

server$ ssh -X client
client(by ssh)$ printenv DISPLAY
localhost:10.0
client(by ssh)$ xeyes

터널링 ssh

같은 방화벽을 통해 터널을 엽니 다.

server$ ssh -X -L 1111:client:22 user@firewall

다음 다른 껍질에

server$ ssh -X -p 1111 user@localhost
client(by ssh)$ printenv DISPLAY
localhost:10.0
client(by ssh tunnel)$ xeyes

( -X 다시) 실행중인 셸을 엽니 다. destination. 직접 ssh 연결과 마찬가지로 DISPLAY 변수가 설정되어야합니다.


{*} 여기서 디스플레이가 나타나는 컴퓨터는 X라는 전통을 따른다. 섬기는 사람 실행중인 여러 프로그램에서 해당 디스플레이를 사용할 수 있기 때문에 고객 기계.

아마도 "클라이언트"가되고있는 머신과 "서버"가되는 벽장에 자리 잡은 머신에 익숙해 져 있기 때문에 아마도 거꾸로 보일 것입니다.


덕분에 @ dmckee -이 유용하고 더 조사 할 수 있습니다. 나는 다음과 같은 순서를 수행했다. 클라이언트 $ xhost + 서버 서버 $ ssh -X user @ 클라이언트 클라이언트 (ssh를 통해) $ printenv DISPLAY는 ""를 반환하지만 X2go 클라이언트는 localhost :
velniukas

어쩌면 XAuthority에 문제가 있습니까? 나는 거기에 env 변수가 없다는 것을 알았다. 또한 ssh 상세 연결을 이중으로 확인합니다 - '출력에서 x11 전달 요청'에 대한 언급이 없습니다. 내가 생각하는 또 하나의 학습 운동. :)
velniukas

'서버'가 그래픽 X 클라이언트도 실행하지 않는다는 문제입니다. server $ xhost + client는 또한 ""디스플레이를 열 수 없습니다.
velniukas

프로그램이 표시 될 머신은 X 서버를 실행하고 있어야합니다 ( startx 비슷한 스크립트는 X 표기법에서 "서버"를 시작합니다. 화면을 "클라이언트"처럼 사용할 수있게합니다. xclock, xeyes 등등). 코드가 실행되는 머신이 X 서버를 실행할 필요는 없습니다. 마지막으로 ssh에서 X 전달을 사용할 수 있는지 확인했습니다.
dmckee

좋아, 그럼 내 설정은 그 측면에서 확인됩니다. x11 전달은 두 가지 모두에서 사용 가능합니다.
velniukas
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.