我如何分叉(通过处理包装)并在新进程中完全重置。 我必须从一个具有大量反应器的过程中产生一个新的过程,但我需要在反应器(在新过程中)中移除某些东西并添加其他东西。
例如,我在父母和孩子身上都需要一个glib2reactor ....但是扭曲通知我已经安装了反应堆(在fork之后)。 Fork用每个扭转反应器将父记忆复制给孩子。如何在孩子身上“重置”扭曲?
感谢您的帮助,
Dudda
答案 0 :(得分:0)
os.fork()
克隆当前进程,将子进程的id返回给父进程,将0返回给子进程。
if os.fork():
"parent"
else:
"child"
如果您使用os.system()
或subprocesses
模块,则会获得全新的流程。
您可以在&
命令中使用分叉os.system()
来避免阻塞。
error = os.system('ls &')
os.execv
和朋友用目标命令替换当前进程。
答案 1 :(得分:0)
Twisted支持通过twisted.internet.interfaces.IReactorProcess
启动任意子进程(包括使用Twisted的进程)。有关如何使用它的详细信息,请参阅the process howto。