【问题标题】:How to wait for a child that respawns itself with os.execv() on win32?如何等待一个在 win32 上使用 os.execv() 重生的孩子?
【发布时间】:2009-07-28 13:24:02
【问题描述】:

我有一些代码使用pip 为构建过程引导 Python 环境:这是确保我们将构建需求与主机系统的其余部分适当隔离并帮助我们获得更多信息的好方法总体上一致的构建结果。

无论如何,驱动pip.py 的代码在Windows 上似乎存在一些问题。问题是我正在使用subprocess.Popen() 从我的引导脚本中生成pip 进程,然后等待该进程完成,但这发生得太早了,因为pip 使用execv 重新启动自身在它创建的新virtualenv 下。当这种情况发生时,我的父母看到孩子已经退出,退出代码为 0,并且它继续它的快乐方式。

所以问题很简单:如何处理来自 win32 上的子进程的 os.execv() 调用,以便确定新执行的子进程的返回码?

【问题讨论】:

    标签: python windows pip execv


    【解决方案1】:

    我想不出任何流畅的方法来处理这个问题。这听起来可能很脏,但也许您可以在脚本运行时将标志文件放到文件系统上,然后等待这些文件被清理?

    【讨论】:

    • 一个标志文件听起来像是一个可行的解决方案,在我看来有一个空文件来检查类似的东西并不是那么糟糕
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 2016-11-30
    • 2021-04-28
    • 2012-09-10
    • 1970-01-01
    相关资源
    最近更新 更多