所有
我使用spawnProcess启动一个进程,并希望在我的某个Factory停止时终止。
我写的东西
p = SomeProtocol(ProcessProtocol)
reactor.spawnProcess(p, 'twistd', ['twistd', '-y', 'anotherMain.py'], {})
class Factory(ServerFactory):
...
def StopFactory(self):
# which is the p above
p.transport.signalProcess("KILL")
我认为子进程将被终止,而不是。
我尝试过使用p.transport.signalProcess(“KILL”)其他地方,但它确实有效。
我的代码出了什么问题?谢谢!
答案 0 :(得分:1)
这可能是因为twistd
守护进程anotherMain.py
。 anotherMain.py
成为守护程序twistd
进程后退出。所以anotherMain.py
实际上并不是主要流程的子流程。
尝试添加-n
选项:
reactor.spawnProcess(p, 'twistd', ['twistd', '-ny', 'anotherMain.py'], {})