# test script to demonstrate FIFO resource leak from multiprocessing.Process from multiprocessing import Process from subprocess import run import time import os import sys def fnc_wrap(s): print("starting sleep in child pid {}".format(os.getpid())) #run("lsof 2>/dev/null | grep python | grep FIFO",shell=True) time.sleep(10) print("done sleep in child pid {}".format(os.getpid())) if True: print("starting parent pid {}".format(os.getpid())) sL = 1 procs = [Process(target=fnc_wrap,args=(s,),name=str(s)) for s in range(sL)] for p in procs: p.start() print("waiting in parent pid {} to join".format(os.getpid())) run("lsof 2>/dev/null | grep python | grep FIFO",shell=True) time.sleep(10) for p in procs: p.join() print("parent pid {} joined children".format(os.getpid())) run("lsof 2>/dev/null | grep python | grep FIFO",shell=True) time.sleep(10) print("finished in parent pid {}, Process object out of scope".format(os.getpid())) run("lsof 2>/dev/null | grep python | grep FIFO",shell=True) time.sleep(10) print("All done in parent pid {}".format(os.getpid())) run("lsof 2>/dev/null | grep python | grep FIFO",shell=True)