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

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

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

返回值的文档为here,但也没有任何提示.

使用subprocess.Popen很容易:

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

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

谢谢!

最佳答案
您不能,因为该过程仅在结束后才返回python解释器.

您可以尝试在线程中运行时获取PID并杀死它,但是…

在这种情况下,Popen是最好的解决方案,因为您可以控制输入/输出和输出.您的过程结束.

documentation

The underlying process creation and management in this module is handled by the Popen class. It offers a lot of flexibility so that developers are able to handle the less common cases not covered by the convenience functions.

请注意,文档首先描述运行,然后描述Popen,然后描述不推荐使用的check_call,check_output …调用

转载注明原文:终止使用“ subprocess.run”创建的进程 - 代码日志