我正在尝试在 Ubuntu 上使用 os.systemPopen 模拟 waitpid 的行为,我得到了

OSError: [Errno 10] No child processes

这是我如何使用它
p = Popen(args, stdout = PIPE, stderr = PIPE)
stdout, stderr = p.communicate()
returncode = os.waitpid(p.pid, 0)[1]

我试图从 p.returncode 中获取返回码,但它总是 None ,任何想法如何获取返回码?

最佳答案

communicate 已经等待子进程终止,并收集返回码本身。因此,当您调用 os.waitpid 时,您是在调用它引用已从操作系统表中删除的进程 ID。因此,您会收到“无子进程”错误。
communicate 返回后,您要查找的返回码将存储在流程对象的 returncode 字段中。

关于python - os.waitpid 上的 "No child processes",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6620693/

10-12 00:24
查看更多