bash 스크립트 X가 다른 bash 스크립트 Y에서 호출되고 있다고 가정합니다. 로컬 컴퓨터에서 스크립트 X를 직접 실행하면 X가 완료된 후 프로그램이 터미널로 종료됩니다.
그러나 SSH를 통해 원격으로 스크립트 Y를 실행하면 X가 완료된 후 (원격) 터미널이 "멈추고" exit
X 끝에 명령이 포함되어 있어도 종료되지 않습니다.
함께 제공되는 스크립트 호출을 완료한 후 스크립트 Y를 종료하거나 SSH를 통해 실행될 때 다음 명령을 계속 진행하려면 어떻게 해야 합니까?
//scriptY.sh
#!/bin/bash
...
ssh -i $ssh_key $user@$host source $dir/scriptX.sh
//scriptX completes fine on SSHed machine, but remote machine hangs here
...
편집하다:
도움이 될 수 있는 또 다른 세부 사항입니다. 안쪽에는 뭔가 더 깊은 것이 있어요이것exec
명령이 포함된 호출되는 스크립트입니다 .
답변1
이는 아마도 스크립트가 tge 터미널을 열어두는 무언가를 백그라운드에서(& 사용하여) 실행하고 있음을 의미할 수 있습니다. 스크립트가 종료되면 무언가가 계속 실행됩니다. ssh는 이를 감지하고 무언가가 종료될 때까지 세션을 닫지 않습니다.
원하는 작업을 수행하도록 스크립트를 얻으려면 스크립트를 게시해야 합니다.