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.pyanotherMain.pyデーモンtwistdプロセスになった後、終了します。したがってanotherMain.py、実際にはメインプロセスのサブプロセスではありません。

-nオプションを追加してみてください:

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