通过 SSH 退出从另一个脚本调用的脚本

通过 SSH 退出从另一个脚本调用的脚本

假设 bash 脚本 X 正在另一个 bash 脚本 Y 中调用。如果我直接在本地计算机上执行脚本 X,则 X 完成后,程序将退出到终端。

但是,当我通过 SSH 远程执行脚本 Y 时,(远程)终端在 X 完成后“挂起”,并且即使 Xexit最后包含命令也不会退出。

如何使脚本 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 检测到这一点,并且不会关闭会话,直到某些东西退出。

为了帮助您让脚本执行您想要的操作,您需要发布脚本。

相关内容