我正在尝试使用os.system
和Popen
在Ubuntu上模拟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]
我试图从[{1}}中获取返回代码,但它始终是p.returncode
,任何想法如何获取返回代码?
答案 0 :(得分:6)
communicate
已经等待子进程终止,并收集返回代码本身。因此,当您调用os.waitpid
时,您将调用它来引用已从OS表中删除的进程ID。因此,您会收到“无子进程”错误。
在communicate
返回后,您要查找的返回代码将存储在流程对象的returncode字段中。
答案 1 :(得分:3)