如何在 Python 中终止我的子进程 [重复]
Posted
技术标签:
【中文标题】如何在 Python 中终止我的子进程 [重复]【英文标题】:How do I terminate my subprocesses in Python [duplicate] 【发布时间】:2015-07-16 23:43:52 【问题描述】:如下所示,我有两个子流程
cmd1='arecord -d 0 -f cd -t wav test.wav'
cmd2='raspivid -o video.h264 -fps 25 -t 0'
pro1 = subprocess.Popen(cmd1, shell=True)
pro2 = subprocess.Popen(cmd2, shell=True)
我想用树莓派同时录制音频和视频。从现在开始,我可以启动这两个程序,但我不能停止这些程序。有人可以帮帮我吗?
或者有什么想法可以通过简单的方式完成这个过程?
【问题讨论】:
【参考方案1】:来自文档:
Popen.terminate() 停止孩子。在 Posix 操作系统上,该方法发送 SIGTERM 给孩子。在 Windows 上,Win32 API 函数 调用 TerminateProcess() 来停止子进程。
2.6 版中的新功能。
Popen.kill() 杀死孩子。在 Posix 操作系统上,该函数发送 SIGKILL 给孩子。在 Windows 上,kill() 是 terminate() 的别名。
【讨论】:
【参考方案2】:Python's subprocess module 的文档包括对Popen.terminate()
和Popen.kill()
的描述。
【讨论】:
以上是关于如何在 Python 中终止我的子进程 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Windows 上使用 Python 终止正在运行的子进程
如何在 python 中杀死使用 subprocess.call 调用的子进程? [复制]