백그라운드에서 xterm을 실행하고 종료합니다.

백그라운드에서 xterm을 실행하고 종료합니다.

HostA(내 Linux 데스크톱)에서 호스트B로 SSH를 통해 연결합니다.

$ ssh hostB -X
$ (nohup xterm &)
$ (nohup xterm &)
$ exit   
## i don't get my prompt back

xterm 창이 호스트A에 표시되지만 호스트B로 SSH를 보내는 터미널은 나에게 프롬프트를 반환하지 않습니다.

Ctrl+C를 누르면 프롬프트가 표시되지만 2개의 xterm 창이 닫힙니다.

다른 호스트의 백그라운드에서 xterm을 실행하고 원래 터미널을 해제할 수 있는 방법이 있습니까?

감사해요

- 앤드류

답변1

-X 옵션은 SSH 연결을 통해 실행되는 X11 터널을 엽니다. 터널은 SSH 연결이 열려 있는 경우에만 존재할 수 있습니다.

요청한 작업을 수행하려면 대화형 세션을 포함하지 않고 SSH 자체를 백그라운드에 배치해야 합니다.

이를 수행하는 방법에는 적어도 두 가지가 있습니다. 하나는 SSH 연결 공유를 설정하는 것입니다. 이를 통해 백그라운드에서 SSH를 연 다음 공유 연결을 사용하여 여러 SSH 세션을 시작할 수 있습니다. SSH 매뉴얼 페이지에 이에 대한 자세한 내용이 있습니다.

더 쉬운 방법은 두 개의 xterm 세션을 열기 위해 백그라운드에서 ssh를 여는 것입니다.

ssh -n -X hostB sh -c "xterm&xterm" &

-n옵션은 ssh가 stdin을 사용하지 않도록 지시하여 백그라운드에 배치되도록 합니다. SSH에 비밀번호가 필요한 경우 마지막 비밀번호를 생략하고 &비밀번호를 입력한 후 백그라운드에서 일시중단할 수 있습니다.

관련 정보