[英]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.