我遇到了一个与 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命令时终止它)。
我认为我的话题已经解决了。