Linux SSH를 사용하여 GUI 응용 프로그램을 시작하고 실행하시겠습니까?

Linux SSH를 사용하여 GUI 응용 프로그램을 시작하고 실행하시겠습니까?

sshUbuntu 13.10이 설치된 내 서버에 액세스 할 수 있습니다 .

그러면 ssh다음 방법을 사용하여 GUI 애플리케이션을 시작할 수 있습니다.

$ ssh -X my_login@address_of_sever

그런 다음 이름(예: gedit,,,)으로 응용 프로그램을 시작할 수 있으며 내 클라이언트 컴퓨터에서 열립니다(창만 열리며 실제로 응용 프로그램은 원격 컴퓨터, 즉 서버에서 실행 중입니다) firefox.google-chrome

이것은 모두 좋습니다.

그러나 클라이언트 컴퓨터에서 GUI 응용 프로그램을 닫으면 서버에서도 닫힙니다(합법적인 것 같습니다).

다음을 사용하여 콘솔 애플리케이션을 시작할 수 있습니다.

$ nohup php somefile.php &  

연결을 닫은 후에도 계속 작동합니다.

GUI 응용 프로그램이 동일한 작업을 수행할 수 있는지 궁금합니다.

이상적으로는 열린 창을 서버로 이동하고 클라이언트에서 무슨 일이 일어나고 있는지 확인해야 할 때 클라이언트로 다시 가져올 수 있다면 일종의 토글이 아닐까요?

답변1

응 넌 할 수 있어XPula. 홈페이지에서:

"원격 시스템에서 응용프로그램(이 예에서는 간단한 xterm)을 시작하고 이를 로컬 시스템에 표시하려면 다음을 실행하십시오.

xpra start ssh:SERVERHOSTNAME:100 --start-child=xterm

이는 ssh -X와 유사하지만 더 빠르며 필요한 만큼 여러 번 세션 연결을 끊었다가 다시 연결할 수 있습니다. (물론 서버 호스트에 xpra가 설치되어 있어야 합니다.) 다른 시스템에서 이 세션에 다시 연결하거나 연결하려면 Attach 명령을 사용하십시오(xpra_launcher GUI를 사용할 수도 있음).

xpra attach ssh:serverhostname:100

답변2

당신은 할 수 없습니다. "ssh -X"는 SSH 채널을 사용하여 X11 프로토콜을 전달합니다. SSH 연결이 종료되면 애플리케이션은 더 이상 서버에 연결할 수 없습니다.

SSH와 X11로 할 수 있는 일은 네트워크가 로컬이고 안전하다면 TCP 수신 모드로 컴퓨터에서 X 서버를 시작하는 것입니다(많은 디스플레이 관리자에는 GUI 또는 텍스트 구성에서 옵션을 제거해야 합니다). -nolisten tcp). 그렇다면 다음과 같이 하세요:

mydesktop$ xhost +myserver
mydesktop$ ssh myserver
myserver$ export DISPLAY=mydesktop:0
myserver$ xterm & disown
ctrl-C
mydesktop$

xterm은 ssh로 시작하여 계속 작동하지만 xterm은 ssh 없이 TCP를 통해 연결됩니다.

답변3

내가 아는 한, GUI 응용 프로그램을 이런 방식으로 복원할 수 있는 유일한 방법은 원격 서버의 데스크탑에서 응용 프로그램을 시작한 다음 VNC와 같은 응용 프로그램을 사용하여 원격 시스템의 데스크탑에 원격으로 연결하는 것입니다. 그런 다음 이 연결을 중단하고 필요한 경우 다시 시작할 수 있습니다.

로컬 데스크톱에 원격으로 표시되는 GUI 응용 프로그램을 복원하는 방법을 모르겠습니다.

콘솔 애플리케이션의 경우 콘솔 관리자(예: screen또는 ) 를 사용하여 tmux이러한 연결을 복원하거나 연결을 시작하는 데 사용된 SSH 연결이 끊어진 경우 그대로 두었다가 나중에 다시 설정할 수 있습니다.

관련 정보