如何终止在Python 3中使用subprocess.run创建的进程?
subprocess.run的文档是here,但未指定.
返回值的文档为here,但也没有任何提示.
使用subprocess.Popen很容易:
p = subprocess.Popen(...)
...
p.terminate()
您是否知道在使用subprocess.run时如何做同样的事情?
谢谢!
解决方法:
您不能,因为该过程仅在结束后才返回python解释器.
您可以尝试在线程中运行时获取PID并杀死它,但是…
在这种情况下,Popen是最好的解决方案,因为您可以控制输入/输出和输出.您的过程结束.
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 …调用