Python Twisted 和 Multiprocessing

3
我该如何通过进程包装进行分叉,并使扭曲在新进程中完全重置。 我必须从具有许多反应器的进程中生成一个新进程,但我需要更改反应器(在新进程中),删除某些内容并添加其他内容。
例如,我需要在父进程和子进程中都使用glib2reactor....但是twisted通知我反应器已经安装好了(在fork之后)。Fork将每个twisted-reactors复制到子进程中。如何在子进程中“重置”twisted?
谢谢你的帮助,
Dudda
2个回答

0

os.fork() 克隆当前进程,将子进程的进程 ID 返回给父进程,将 0 返回给子进程。

if os.fork():
    "parent"
else:
    "child"

如果您使用os.system()subprocesses模块,您将获得一个全新的进程。

您可以在os.system()命令中使用fork &来避免阻塞。

error = os.system('ls &')

os.execv和相关函数会用目标命令替换当前进程。


0
Twisted支持通过twisted.internet.interfaces.IReactorProcess启动任意子进程(包括使用Twisted的进程)。有关如何使用它的详细信息,请参见进程howto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接