[英]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.