繁体   English   中英

杀死子进程退出Python程序

[英]Killing a subprocess exits Python program

def playvid(self):
    proc1 = subprocess.Popen("gst-launch-1.0 videotestsrc ! autovideosink", shell=True)
    time.sleep(3)
    os.killpg(os.getpgid(proc1.pid),signal.SIGTERM)

当我按下一个按钮时调用此函数(使用TK库创建)。 3秒后,我的整个程序(连同GUI屏幕)被杀死,而不仅仅是子进程。 我该如何纠正并确保仅杀死子进程proc1。

如果您阅读了有关子流程的文档,则可以选择以下几种方法:

Popen.send_signal(信号)

将信号发送给孩子。

在Windows上,SIGTERM是Terminate()的别名。

Popen.terminate()

阻止孩子 在Posix OS上,该方法将SIGTERM发送给子级。 在Windows上,调用Win32 API函数TerminateProcess()来停止子级。

Popen.kill()

杀死孩子。 在Posix OS上,该功能将SIGKILL发送给子级。 在Windows上,kill()是Terminate()的别名。

我会用:

proc1.terminate()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM