当 ssh 命令调用的 python 脚本出现错误退出时,如何保持 ssh 命令继续运行?

当 ssh 命令调用的 python 脚本出现错误退出时,如何保持 ssh 命令继续运行?

我遇到了一个与 SSH 有关的问题,当我不想退出时,它会退出。我的目标是运行多个脚本(即测试)并评估它们的退出值以检测项目中的错误。

首先,我将描述这个过程:

  • 我有一台本地机器,在其上运行一个调用以下命令的脚本:

    ssh -t -o StrictHostKeyChecking=no -o ServerAliveInterval=30 -i $PRIVATE_KEY $REMOTE_USER@$REMOTE_IP  "cd ~/path/to/scripts && "$CMD
    

    CMD是在远程机器上运行的脚本

  • 在远程机器上,“主”脚本调用多个“辅助” bash 和 python 脚本。

这是我的问题:当“主”脚本在远程调用的“辅助”python 脚本之一以不同于的值退出时0,它会终止 ssh 连接而不会返回到“主”脚本。

我该怎么做才能防止我的 SSH 连接因“辅助”脚本错误而终止?我需要我的主要脚本运行到最后。

答案1

正如我在评论中提到的,传递给 SSH 的命令是bash -e path/to/script,它会在任何非零退出状态下终止脚本。

此选项的选择对于捕获用户的Ctrl+C命令并停止测试是必要的。这似乎与我的问题不相容(不会在发生错误时终止 SSH 连接,同时在出现Ctrl+C命令时终止它)。

我认为我的话题已经解决了。

相关内容