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

use*_*218 0 python os.system sh wait

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

有什么方法可以告诉 python 等待脚本完成,然后继续执行其余代码?提前致谢

ti7*_*ti7 6

我认为@Barmar在一些评论中确定了问题

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

你应该

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