2012-11-27 60 views
0

所有殺子不起作用

我使用spawnProcess啓動一個進程,並想殺死我的某些工廠停止時。

東西我寫了這樣的


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」)一些其他的地方,它的工作原理。

我的代碼有什麼問題?謝謝!

回答

1

這可能是因爲twistd守護進程anotherMain.py。在anotherMain.py變成守護進程twistd進程退出。所以anotherMain.py並不是真正的主流程子流程。

嘗試添加-n選項:

reactor.spawnProcess(p, 'twistd', ['twistd', '-ny', 'anotherMain.py'], {}) 
+0

嗯。我想對此表示讚賞,但我感到很矛盾。爲什麼不能像這樣發佈'twistd'?這對我來說似乎完全有效。 –

+0

@ Jean-PaulCalderone謝謝。刪除答案的第二部分。 – Maxim