簡體   English   中英

os.waitpid 上的“無子進程”

[英]“No child processes” on os.waitpid

我正在嘗試在os.system上使用Popenwaitpid模擬 os.system 的行為,我得到了

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返回后,您要查找的返回碼將存儲在進程object的返回碼字段中。

使用p.poll()p.wait()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM