from multiprocessing import set_start_method, forkserver from multiprocessing.context import Process import os def child2(): print(f"in child2: pid={os.getpid()}, ppid={os.getppid()}, forkserver.pid={forkserver._forkserver._forkserver_pid}") def child1(): set_start_method("forkserver", force=True) p = Process(target=child2) p.start() p.join() print(f"in child1: pid={os.getpid()}, ppid={os.getppid()}, forkserver.pid={forkserver._forkserver._forkserver_pid}") def run(): p = Process(target=child1) p2 = Process(target=child1) p2.start() p.start() p.join() p2.join() print(f"in run: pid={os.getpid()}, ppid={os.getppid()}, forkserver.pid={forkserver._forkserver._forkserver_pid}") if __name__ == "__main__": set_start_method("forkserver") run()