import os import signal from subprocess import Popen, PIPE, STDOUT proc = Popen(['/usr/sbin/tracepath', 'www.google.com'], bufsize=0, stdout=PIPE, stderr=PIPE, close_fds=True) def handler(signum, frame): os.kill(proc.pid, signal.SIGINT) signal.signal(signal.SIGALRM, handler) signal.alarm(5) try: out, err = proc.communicate() finally: signal.alarm(0) print out print err