我想编写一个Python脚本,它将启动GUI程序(例如,使用subprocess.run
或os.system
或其他程序运行二进制程序)。在程序完成之前,脚本不应阻塞,应先启动脚本,然后继续运行。
我正在Ubuntu上执行此操作。
我尝试了subprocess.Popen
,但是如果我奔跑说subprocess.Popen("gedit")
,则会出现奇怪的行为。如果打开Ubuntu系统监视器(进程管理器),则可以看到运行脚本时出现了gedit进程,并且gedit窗口本身也打开了。但是,如果我关闭窗口,则该过程不会在系统监视器中结束。该过程一直保持在那里,直到我的python脚本退出。
如何获得所需的行为?我现在唯一能想到的就是在另一个Python线程中调用subprocess.run
,这是我唯一能做的吗?
答案 0 :(得分:0)
尝试使用subprocess.call
。以前对我有用。
subprocess.call(['command', 'arguments'])
当窗口关闭时,程序应结束。
答案 1 :(得分:-1)
在退出程序之前,必须杀死创建的子进程。
尝试this。