【问题标题】:Kill subprocess in Python in another function?在另一个函数中杀死 Python 中的子进程?
【发布时间】:2013-05-24 08:56:23
【问题描述】:

我是 Python 的新手。这是我的代码:

def start(self, widget):
    s = subprocess.Popen('myprocess')

def stop(self, widget):
           #what to put here?

我在 Ubuntu 上。在第一个函数中,我启动了一个需要 CTRL+C 来终止的进程。我必须在停止函数中输入哪些指令来终止进程?

非常感谢您。

【问题讨论】:

    标签: python ubuntu subprocess kill


    【解决方案1】:

    我只是用一个全局变量 s 解决了。所以我的代码变成了:

     s = None
    
     def start(self, widget):
           global s
           s = subprocess.Popen('myprocess')
    
     def stop(self, widget):
           s.kill()
    

    【讨论】:

    • 更好:def start_process(self, dummy): if self.myprocess: self.stop_process(dummy) \n self.myprocess = Popen('myprocess')def stop_process(self, widget): p, self.myprocess = self.myprocess, None; p.terminate(); widget.after(5000, kill_process, p);
    最近更新 更多