0

我想在后台线程中从 python 启动此命令,同时使用envoy保持主程序线程运行:

envoy.run('python -m SimpleHTTPServer 9999')

这有效,但挂起,它没有按应有的方式运行线程,所以当我完成后我不能杀死它。我试图将它包装成一个线程:

class FileServerThread(Thread):
    def __init__(self):
        Thread.__init__(self)
        self.process = None

    def run(self):
        self.process = envoy.run('python -m SimpleHTTPServer 9999')        

    def kill(self):
        self.process.kill

但同样,这不起作用,因为 self.process 从未分配过(因为 envoy.run 没有结束也不会返回)。

有什么帮助吗?

4

1 回答 1

1

恐怕你做不到run,但你可以做到connect

import envoy
p = envoy.connect("python -m SimpleHTTPServer 9999")
print "run here!"
p.kill()

但是,之后kill(),我发现进程变成了僵尸,p.block()就解决了。

于 2012-09-26T10:02:30.727 回答