我正在尝试在 Ubuntu 上使用 os.system
和 Popen
模拟 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/