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

时间:2019-03-09 17:42:07

标签: python process

我想编写一个Python脚本,它将启动GUI程序(例如,使用subprocess.runos.system或其他程序运行二进制程序)。在程序完成之前,脚本不应阻塞,应先启动脚本,然后继续运行。

我正在Ubuntu上执行此操作。

我尝试了subprocess.Popen,但是如果我奔跑说subprocess.Popen("gedit"),则会出现奇怪的行为。如果打开Ubuntu系统监视器(进程管理器),则可以看到运行脚本时出现了gedit进程,并且gedit窗口本身也打开了。但是,如果我关闭窗口,则该过程不会在系统监视器中结束。该过程一直保持在那里,直到我的python脚本退出。

如何获得所需的行为?我现在唯一能想到的就是在另一个Python线程中调用subprocess.run,这是我唯一能做的吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:-1)

在退出程序之前,必须杀死创建的子进程。

尝试this