如何在Python 3中终止使用subprocess.run
创建的进程?
subprocess.run
的文档为here,但未指定。
返回值的文档是here,但在那里也没有提示。
使用subprocess.Popen
很简单:
p = subprocess.Popen(...)
...
p.terminate()
使用subprocess.run
时,您是否知道如何做同样的事?
谢谢!
答案 0 :(得分:3)
你不能,因为只有在结束后进程才返回python解释器。
您可以尝试在线程中运行时获取PID并将其终止,但是......
对于这些情况,Popen
是最佳解决方案,因为您可以控制输入/输出&你的过程结束。
此模块中的基础流程创建和管理由Popen类处理。它提供了很大的灵活性,因此开发人员能够处理便利功能未涵盖的不太常见的情况。
请注意,文档首先介绍run
,然后Popen
,然后是现已弃用check_call
,check_output
...来电