下面的模型程序仅打印其父PID的打印输出到“ 1.log”文件。为什么不打印子PID的打印输出到1.log。
在谷歌搜索时找不到答案。
from __future__ import print_function
import sys
import os
def main():
class Logger(object):
def __init__(self):
self.log = open("1.log", "w")
def write(self, message):
self.log.write(message)
sys.stdout = Logger()
def test():
cmd = 'ver'
print("1. Running command:",cmd)
print('2. Done')
pid = os.fork()
if pid != 0 :
child1 = pid
print("This is parent")
test()
else:
print("This is Child")
test()
os._exit(0)
os.waitpid(child1, 0)
if __name__ == "__main__":
main()
运行上述程序后,
我期望这样的输出:
这是父母 1.运行命令:ver 2.完成 这是孩子 1.运行命令:ver 2.完成
但实际输出是
这是父母 1.运行命令:ver 3.完成
有人可以告诉我要获取上述1.log文件内容需要做什么(如预期的1.log文件内容所述)?