我正在计划一个Python脚本,它将使用os.fork()创建一系列子进程来执行一些计算。父进程将一直阻塞,直到子进程终止。
不同之处在于,我需要能够使用python从Unix shell和使用%run从ipython运行该脚本。
子进程应以何种方式终止,以避免重新进入ipython命令提示符?根据我的经验,sys.exit()是不行的。
发布于 2011-06-03 15:29:34
下面的方法似乎是可行的:
import os, sys
child_pid = os.fork()
if child_pid == 0:
print 'in child'
os._exit(os.EX_OK)
print 'hm... wasn''t supposed to get here'
else:
print 'in parent'诀窍是使用os._exit()而不是sys.exit()。文档包含以下段落:
备注退出的标准方式是
sys.exit(n)。_exit()通常只应该在fork()之后的子进程中使用。
发布于 2011-06-03 02:39:53
在Linux术语中,与其fork iPython进程,为什么不从iPython shell中exec一个常规的python解释器并拥有这个分支呢?
https://stackoverflow.com/questions/6049741
复制相似问题