终止使用'subprocess.run'创建的进程

时间:2018-02-05 13:17:10

标签: python python-3.x subprocess

如何在Python 3中终止使用subprocess.run创建的进程?

subprocess.run的文档为here,但未指定。

返回值的文档是here,但在那里也没有提示。

使用subprocess.Popen很简单:

p = subprocess.Popen(...)
...
p.terminate()

使用subprocess.run时,您是否知道如何做同样的事?

谢谢!

1 个答案:

答案 0 :(得分:3)

你不能,因为只有在结束后进程才返回python解释器。

您可以尝试在线程中运行时获取PID并将其终止,但是......

对于这些情况,Popen是最佳解决方案,因为您可以控制输入/输出&你的过程结束。

来自documentation

  

此模块中的基础流程创建和管理由Popen类处理。它提供了很大的灵活性,因此开发人员能够处理便利功能未涵盖的不太常见的情况。

请注意,文档首先介绍run,然后Popen,然后是现已弃用check_callcheck_output ...来电