如何从Python启动GUI程序,但在用户关闭窗口时让进程结束?

如何从Python启动GUI程序,但在用户关闭窗口时让进程结束?,python,process,Python,Process,我想写一个Python脚本,它将启动一个GUI程序,如中所示,运行一个带有subprocess.run或os.system的二进制程序。在程序完成之前,脚本不应该阻塞,它应该启动它,然后继续运行 我在Ubuntu上做这个 我尝试了subprocess.Popen,但是如果我运行subprocess.Popengedit,我会得到奇怪的行为。如果我打开Ubuntu system monitor process manager,我可以在运行脚本时看到gedit进程,并且gedit窗口本身也会打开。但

我想写一个Python脚本,它将启动一个GUI程序,如中所示,运行一个带有subprocess.run或os.system的二进制程序。在程序完成之前,脚本不应该阻塞,它应该启动它,然后继续运行

我在Ubuntu上做这个

我尝试了subprocess.Popen,但是如果我运行subprocess.Popengedit,我会得到奇怪的行为。如果我打开Ubuntu system monitor process manager,我可以在运行脚本时看到gedit进程,并且gedit窗口本身也会打开。但是如果我关闭窗口,进程不会在系统监视器中结束。在我的python脚本退出之前,该过程一直保持在那里


我怎样才能得到我想要的行为?我现在唯一能想到的就是在另一个Python线程中调用subprocess.run,这是我唯一能做的事情吗?

在退出程序之前,必须先终止您创建的子进程

尝试。

尝试使用subprocess.call。这以前对我很有效

subprocess.call(['command', 'arguments'])

当窗口关闭时,程序应结束

subprocess.call正在阻塞,这是我不想要的。true。您可以使用并发编程tho。只是一个建议