如何告诉 python 等待 shell (.sh) 脚本

How to tell python to wait for shell (.sh) script

我正在从我的 python 代码中调用一个 shell (.sh) 脚本,我想告诉 Python 等待脚本结束,然后再继续剩下的代码。作为记录,该脚本正在调用 HPC 集群进行一些大约需要 40-50 分钟的计算。我可能会做 sleep() 并强制 python 等待这 40-50 分钟,但首先我并不总是知道应该等待的时间量,其次我希望有一种更有效的方式这样做。 因此,使用 os.system("bsub < test.sh").

调用脚本

有没有什么方法可以真正告诉 python 等到脚本完成后再继续其余的代码? 提前致谢

我认为 @Barmar 指出了一些评论中的问题

当您 运行 bsub 时,它会立即提交作业 returns,而不是等待完成。

你应该

  • -K arg 添加到 bsub 以使其等待 ref
  • 直接跳过bsub和运行脚本
  • 在脚本的末尾写一些独立的标记(可能是一个文件)并让 Python 脚本循环检查它(可能每 1-5 秒检查一次,这样它就不会淹没该资源)
  • 重新编写纯脚本Python并直接将其合并到您的逻辑中