python - "No child processes"on os.waitpid

标签 python unix ubuntu

我正在尝试在 Ubuntu 上使用 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 时,您调用它时引用了一个已从 OS 表中删除的进程 ID。因此,您会收到“无子进程”错误。

您要查找的返回码将存储在 returncodecommunicate 返回后进程对象的字段。

关于python - "No child processes"on os.waitpid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6620693/

相关文章:

python - 双变音位算法的最佳/最差/平均时间效率是多少?

python - 创建一个函数来循环现有数据框并将值添加到新列

使用硬链接(hard link)的 Python 写时复制

c - 管道和插入件

linux - 为什么sublime建好后显示 "Unable to find target command: exec"?

python popen 标准输出卡住

python - 如果 pcolor 图不是正方形,则某些标签会丢失

linux - 在日期中包含点的现有日期中添加 1 天

php - LoadModule 有两个参数,一个模块名称和一个共享对象文件的名称来加载它

ubuntu - Zookeeper 或 Marathon docker 容器使用 100% CPU