繁体   English   中英

终止后,Python子进程通信失败

[英]Python Subprocess communicate fails after terminate

我遇到一个问题,即调用proc.communicate()甚至要求后仍然挂起proc.terminate()

我创建任务以在后台运行

import subprocess as sub
p = sub.Popen(command, stdout=sub.PIPE, stderr=sub.PIPE, shell=False)

在脚本完成时,我调用terminate()communicate()wait()来从进程中收集信息。

p.terminate()
errorcode = p.wait()
(pout, perr) = p.communicate()

脚本挂在通话处以进行通信。 我假设在终止呼叫之后进行的任何通信呼叫都会立即返回。 有什么原因会失败吗?

编辑:我正在使用此方法,因为该命令实际上是一个紧密的循环,不会自行终止。 我想使用p.terminate()来执行此操作,然后查看stdout和stderr必须提供什么。

您不需要前两个语句。 只需调用communicate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM