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

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

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

새 모니터에서 그놈 터미널을 여는 데 문제가 있습니다Bash 스크립트를 통해 명령을 실행할 때.

콘솔에서 직접 이 명령을 실행하면 새 터미널 서버가 시작되고 서버에 연결된 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

답변1

위에서 언급한 바와 같이, 터미널 서버 시작과 새 터미널 열기 사이에 절전 모드가 발생하는 타이밍 문제. :)

관련 정보