#!/usr/bin/env python3 import subprocess import os import signal from time import sleep sleep1 = subprocess.Popen([ "sleep", "1000" ]).pid # Uncomment the print or sleep below to make waitpid not hang #print("Spawned sleep1: %i" % (sleep1)) #sleep(0.5) os.kill(sleep1, signal.SIGTERM) print("Killed sleep1: %i" % (sleep1)) sleep2 = subprocess.Popen([ "sleep", "1000" ]).pid print("Spawned sleep2: %i" % (sleep2)) (child_pid, _) = os.waitpid(-1, 0) print("Reaped: %i" % (child_pid)) os.kill(sleep2, signal.SIGTERM) (child_pid, _) = os.waitpid(-1, 0) print("Reaped: %i" % (child_pid))