[英]os.waitpid doesn't return a tuple containing pid, and its exit status
我嘗試為這個調用subprocess
python bug提出一個解決方法。 我想方法是將os.system
與os.waitpid
結合使用。 為了測試這個,我編寫了下面的代碼。 system_call_test.py
將pid
和lot的文本寫入文件f
。 但是調用os.waitpid()
總是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
os.system
返回進程的退出代碼 。 所以s
以上已填充和進程已退出。 os.waitpid
無需等待。
system()
是fork()
+ exec()
+ waitpid()
。 你不應該再次調用waitpid()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.