Python-os.fork()失败

时间:2018-08-30 12:20:58

标签: python fork

在python中,我在for条件中使用os.fork()。我正在做这样的事情:

for i in range(1,4):
    try:
         pid = os.fork()
    except OSError:
         print ("Error forking process")
         continue
    if pid == 0:
         print "In child process"
         os._exit(0)
    print "In parent process"

如何模拟os.fork()的故障,以便可以确保未打印“在父进程中”?如何为os.fork()函数模拟OSError?

1 个答案:

答案 0 :(得分:0)

您可以将os.fork()替换为您自己的实现:

import os

def _fork():
   raise OSError()
os.fork = _fork

for i in range(1,4):
    try:
         pid = os.fork()
    except OSError:
         print ("Error forking process")
         continue
    if pid == 0:
         print "In child process"
         os._exit(0)
    print "In parent process"

如果这是测试的一部分,请查看unittest.mock模块。