我想在后台线程中从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不会结束并且永远不会返回)。
任何帮助?
答案 0 :(得分:1)
我担心您无法使用run
执行此操作,但您可以connect
执行此操作。
import envoy
p = envoy.connect("python -m SimpleHTTPServer 9999")
print "run here!"
p.kill()
然而,在kill()
之后,我发现这个过程变成了僵尸,p.block()
会解决它。