我正在测试/调试使用os.fork()
进行并行处理的现有python程序(因此我不允许更改现有代码)。当我尝试捕获打印输出时(在Linux bash shell终端中):
python program.py > program.out 2>&1
文件program.out
仅包含父进程的打印输出,而不包含任何其他子进程的打印输出。
我们该如何捕获所有进程的所有打印输出?
额外信息:所有程序的进程都调用具有print()的相同python函数,该函数还打印出os.getpid()以进行进程跟踪。在没有重定向的终端上,我看到所有输出都带有所有进程pid,而在重定向时,捕获文件只包含带有父进程pid的输出。