在Python中终止子进程

时间:2012-05-26 17:48:33

标签: python subprocess python-2.7

我有一个包装脚本,里面还有很多其他的测试脚本。在其中一个测试脚本中,我使用Popen类创建一个子进程。问题是我不知道如何终止该子进程并返回主进程并继续下一个测试脚本。我的包装器在具有子进程的测试脚本处停止,并且永远不会继续。你能暗示一下吗?谢谢。 附: kill()或terminate()或我认为有用的任何其他函数,并没有让我回到主进程。我想终止子进程并继续主进程。

1 个答案:

答案 0 :(得分:0)

在主脚本中保留对子项的引用。使用该引用调用terminate()

from subprocess import Popen

class TestApp(object):
    app = None

    def start(self):
        self.app = Popen(['your command'])

    def stop(self):
        self.app.terminate()

在主脚本中:

app1 = TestApp()
app1.start()
app2 = TestApp()
app2.start()
#do something here
app1.stop()
app2.stop()
#do more here