python - 如何正确结束python中的子进程?
问题描述
有人可以澄清结束以 Popen 开始的子流程的最正确方法是什么吗?
考虑例如
proc = subprocess.Popen(["tail", "-f", filename], stdout=subprocess.PIPE)
我发现了很多选择:
proc.stdout.close()
proc.kill()
proc.terminate()
os.kill(proc, signal.SIGKILL)
os.kill(proc, signal.SIGINT)
解决方案
根据文档Popen 支持with
声明。所以我的猜测是使用它,所以它是自动制作的。如果您愿意,我想您可以查看代码内部以查看已完成的操作。
with subprocess.Popen(["tail", "-f", filename], stdout=subprocess.PIPE) as proc:
# do stuff
# everything should be closed now
推荐阅读
- c# - 如果我向 C# .NET 添加类,为什么会收到 HTTP 错误 403.14?
- python - 检查模型是否具有特定属性,如果找到则检查它是否具有值
- jquery - 在 nuxt.js 中使用 jquery.easing 时“$.extend 不是函数”
- angular - 排除某些路由的 routerLinkActive 样式类
- flutter - 如何创建可缩放的页面,例如带有颤动的地图
- html - ABCpdf - 如何使用 AddHtml 实现 CSS?
- python - 如何使用自定义 udf 实现来舍入列
- amazon-web-services - AWS rekognition 可以分析视频流中的人脸(情绪等)吗?
- html - 宽度自动和滚动条导致换行
- r - 如何附加超过 2 个文件路径(与 append() 相同)