import os import time from signal import * def handler(s, c): print("Python handler called") os._exit(0) signal(SIGTERM, handler) for i in range(0, 100): pid = os.fork() if pid == 0: try: for i in range(6): time.sleep(1) print("Child:", i) finally: os._exit(1) os.kill(pid, SIGTERM) print("Parent waiting for child") [_, status] = os.waitpid(pid, 0) print("Got exit status 0x{:04X}".format(status)) if status != 0: break print("===")