如何杀死Python中的子进程

2023-12-05

我有代码在 Linux 电脑上运行网络摄像头,使用gst-launchcommand.

当我终止该进程时,网络摄像头窗口不会关闭,但程序停止运行。我希望网络摄像头窗口也关闭。 你能帮我解决这个问题吗?

import subprocess
import time
import os
import signal

cmd = "gst-launch-1.0 -v v4l2src ! video/x-raw,format=YUY2 ! videoconvert ! autovideosink"
process = subprocess.Popen(cmd, shell = True)
time.sleep(5)
#print(subprocess.Popen.pid)
#process.terminate()
os.kill(process.pid, signal.SIGKILL)
#process.kill()

对我来说,当前接受的答案也将终止主程序。如果您遇到同样的问题并希望它继续,您还必须添加参数preexec_fn=os.setsid来打开。所以总共:

import os
import signal
import subprocess

process = subprocess.Popen(cmd, shell=True, preexec_fn=os.setsid)
os.killpg(os.getpgid(process.pid), signal.SIGTERM)

我从这里得到这个:https://stackoverflow.com/a/4791612/11642492

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何杀死Python中的子进程 的相关文章

随机推荐

  • 使用 jQuery 导入 HTML 文件

    我正在尝试使用 jQuery 导入 HTML 文件 section1 load section1 html 问题是当代码加载时 jQuery 不能很好地工作 在这个 HTML 中 我有一些 jQuery UI 和一些复选框 如果我不使用 加
  • 如何向空 numpy 数组添加新行

    使用标准 Python 数组 我可以执行以下操作 arr arr append 1 2 3 arr append 4 5 6 arr is now 1 2 3 4 5 6 但是 我不能在 numpy 中做同样的事情 例如 arr np ar
  • 使用 utf-8 文件名的纯 ASP 上传

    我已经用经典 asp 制作了一个上传页面 只要文件名不是 utf 8 字符 它就可以正常工作 我已添加字符集直到页面 并且表单接受 utf 8 字符 但我的文件保存为 pdf错误应该是 pdf 我不知道是否还有什么可以做的 或者是 纯ASP
  • centos 6.x 上的 pdo dblib

    我正在尝试在 CentOS 版本 6 5 最终版 64 位上安装 dblib centos 6 没有 freetds 所以我必须从其他地方获取 freetds freetds devel 0 91 2 1 x86 64 rpm 使用 pec
  • ASP.NET _ViewStart.cshtml - 获取请求

    我有一个 ASP NET 应用程序 我的应用程序有一个 ViewStart cshtml 文件 该文件如下所示 using MyCompany MyApp Layout Views Shared Layout cshtml var p Ht
  • 在 ViewModel 之间共享状态

    我有两个 ViewModel 它们向不同的视图呈现相同的模型 将模型呈现为一个项目ListBox 另一个将其呈现为选项卡中的选项卡TabControl The TabControl是显示在中选择的项目的选项卡ListBox 以便选项卡随着选
  • 如何以最快的方式做到这一点?

    我需要找出一个单词在字符串中出现了多少次 但问题是您需要查找的单词之间可以有空格 例如您想查看单词出现了多少次text出现在 tOeOxOt 中 它会给你输出 1 或者例如在textt它会给你输出 2 我为此用 pascal 编写了这个过程
  • ios writeToFile 更改不保存

    ios 声称文件已被写入 但更改从未真正保存 就好像它们保留在缓冲区中一样 我需要冲洗吗 void viewDidLoad super viewDidLoad NSString myFilePath NSBundle mainBundle
  • 如何从日期中减去5分钟

    我有这个数据 date Y m d 00 00 00 那个返回2015 10 08 00 00 00 我想取消 5 分钟 2015 10 07 23 55 00 非常感谢 您需要从已知时间点减去 5 分钟 date d 00 00 00 t
  • 如何避免 dcast() 输出中出现 NA 列?

    我怎么能够avoid NA中的列dcast 输出从reshape2包裹 在这个虚拟示例中dcast 输出将包括一个NA柱子 require reshape2 data iris iris Species2 lt iris Species i
  • Kudu npm 安装失败

    当尝试在 Azure 上使用 kudu 部署我的项目时 我遇到了一个非常奇怪的错误 我已经使用 VueJs 使用 dotnet 构建了我的项目 我使用了以下模板 https github com MarkPieszak aspnetcore
  • 是否可以去掉 Service 类中的 TClient 泛型类型

    对于 WCF 客户 我有一个IServiceProxyFactory设置凭据的界面 public interface IServiceProxyFactory
  • 如何模拟或将带有扫描仪输入的控制台引入 jFrame 应用程序

    我想将控制台引入 jFrame 窗口应用程序 并能够与扫描仪输入进行交互 基本上 无论控制台中发生什么 我都希望将其显示在应用程序窗口的文本区域中 有一个简单的解决方案吗 这是我非常简单的代码 控制台逻辑类 import java util
  • 将 KeyValuePair 列表序列化为 XML

    我正在尝试将对象序列化为 XML 下面是我需要的 XML 格式
  • RegEx 从 Google Sheets 单元格内的字符串中获取日期格式的最后一个匹配项

    我的目标是使用 Google 表格中的正则表达式 表格函数 regexextract 提取日期字符串和以下字符 其中字符串是单元格的最后一行 以日期格式 yyyy DD MM 开头 后跟 所以我目前拥有的 RegExpression 看起来
  • 如何使用 Shapeless 将泛型 Map[String, Any] 转换为泛型函数内的 case 类?

    我正在尝试遵循这里的答案https stackoverflow com a 31641779 1586965 也就是说 我希望能够转换 可能嵌套 Map String Any 到一个案例类 scalaVersion 2 11 8 val s
  • PySpark:将 SchemaRDD 映射到 SchemaRDD

    我正在将 JSON 对象文件作为 PySpark 加载SchemaRDD 我想更改对象的 形状 基本上 我将它们展平 然后插入到 Hive 表中 我遇到的问题是以下返回PipelinedRDD not a SchemaRDD log jso
  • numberOfRowsInSection 在 Alamofire 连接之前调用

    我通过 Alamofire 获取数据viewDidLoad 然后将其放入answerArray中 然而 在 Alamofire 连接之前 numberOfRowsInSection被调用并返回0 如何先通过Alamofire获取数据 然后获
  • PhoneGap 添加 Facebook Connect 插件

    我想添加com phonegap plugins facebookconnect到我的 PhoneGap 构建 Android 应用程序 但我无法做到这一点 在文档网站中他们说要添加
  • 如何杀死Python中的子进程

    我有代码在 Linux 电脑上运行网络摄像头 使用gst launchcommand 当我终止该进程时 网络摄像头窗口不会关闭 但程序停止运行 我希望网络摄像头窗口也关闭 你能帮我解决这个问题吗 import subprocess impo