0

试图寻找这个问题的解决方案,但由于有一个命令 Shell=True (不要认为这与我正在做的事情有关,但我很可能是错的)它得到了很多看似无用的命中.

好的,我的问题基本上是:

我在集群上运行 Python 脚本。在集群上,正常的做法是启动所有代码/等。通过用于请求运行作业所需的适当资源(最大运行时间、节点、每个节点的处理器等)的 shell 脚本。这个shell然后调用脚本并离开它。

这不是问题,但我遇到的问题是我的“父”代码需要等待它的“子”完全运行(并生成它们的数据以供父使用),然后再继续。当我在它和脚本之间没有 shell 时,这不是问题,但就目前而言,当 shell 脚本完成时,.communicate() 和 .wait() 是“满意的”。我需要等到 shell 调用的脚本完成。

我可以通过在其中放置一个需要某些文件在中断之前存在的while循环来搞砸它,但这对我来说似乎很乱。

所以我的问题是,有没有一种方法可以让 .communicate (理想情况下)或 .wait 或通过其他一些(干净/好的)方法来暂停父代码,直到 shell 以及 shell 调用的所有内容完成运行?理想情况下(几乎是必要的)是仅在父代码中完成。

如果需要,我可能无法很好地解释这一点,因此很乐意提供更多详细信息,如果其他地方回答了这个问题,我很抱歉,请指出我的方式!

4

0 回答 0