os.waitpid不返回包含pid的元组及其退出状态

时间:2012-10-29 09:42:16

标签: python process wait

我尝试为此python bug来电subprocess提出解决方法。我想方法是将os.systemos.waitpid结合使用。为了测试这个,我编写了下面的代码。 system_call_test.pypid和许多文本写入文件f。但是,调用os.waitpid()总是会给我这个错误:OSError: [Errno 10] No child processes。所以我很难检查这个结构是否正常工作。如何确保脚本等待另一个脚本的终止。我在Windows XP / python 2.7上。

import os
f = r'D:\temp\called.txt'

s = os.system('C:\Python27\python.exe D:\python_spullen\system_call_test.py')
with open(f, 'r') as f_in:
    i = f_in.readline()[-4:]
    print i
    rr = os.waitpid(int(i),0)
    print rr

2 个答案:

答案 0 :(得分:1)

os.system返回the exit code of the process。因此,上面的s已经填充,并且该流程已退出。 os.waitpid无需等待。

答案 1 :(得分:1)

system()fork() + exec() + waitpid()的组合。您不应该再次致电waitpid()