0

全部

我使用 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") ,它可以工作。

我的代码有什么问题?谢谢!

4

1 回答 1

1

这可能是因为twistd守护进程anotherMain.py。之后anotherMain.py成为一个守护twistd进程退出。因此anotherMain.py,它实际上并不是您的主流程的子流程。

尝试添加-n选项:

reactor.spawnProcess(p, 'twistd', ['twistd', '-ny', 'anotherMain.py'], {})
于 2012-11-27T16:08:53.443 回答