ssh를 통해 원격으로 로그인 할 때 쉘 스크립트에서 새 그놈 터미널을 시작할 수 없습니다.

크리스 키저

배경 : Windows 컴퓨터에서 Putty를 통해 Linux 컴퓨터에 SSH를 사용합니다. Windows에서 VcXsrv를 실행하고 SSH를 통해 X를 전달하고 있습니다. 이것은 모두 예상대로 작동합니다.

bash 스크립트를 통해 명령을 실행할 때 새 디스플레이에서 gnome-terminal을 여는 데 문제가 있습니다 .

콘솔에서 직접 이러한 명령을 실행하면 새 터미널 서버가 시작되고 서버에 연결되는 gnome 터미널 세션을 시작할 수 있습니다.

$ /usr/libexec/gnome-terminal-server --app-id my.foo &
[1] 29553
$ gnome-terminal --app-id my.foo
$

그러나 동일한 명령을 쉘 스크립트에 넣으면 다음 오류가 발생합니다.

startGnomeTerm.sh의 내용

#!/bin/bash
/usr/libexec/gnome-terminal-server --app-id my.foo &
gnome-terminal --app-id my.foo

스크립트를 실행할 때

$ ./startGnomeTerm.sh
# Error creating terminal: The name my.foo was not provided by any .service files

나는 심지어 실행하여 모든 쉘 변수를 스크립트와 공유하려고 시도했습니다.

$ export > shell_vars

그런 다음 스크립트 시작 부분에 배치합니다.

#!/bin/bash
source shell_vars
....

-최신 정보-

해결책은 명령 사이에 약간의 지연을 추가하는 것입니다. 서버 설정은 스크립트가 허용하는 것보다 오래 걸리므로 서버가 실제로 실행되기 전에 터미널이 연결을 시도했습니다.

작업 스크립트 :

#!/bin/bash
/usr/libexec/gnome-terminal-server --app-id my.foo &
sleep 0.5
gnome-terminal --app-id my.foo
팅크

위에서 논의한 바와 같이 : 타이밍 문제; 터미널 서버 시작과 새 터미널 열기 사이에 절전 모드를 도입하십시오. :)

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관