rendered paste bodyimport signal, os, sys
from subprocess import Popen
def callProgram(program, timeout):
def handler(signum, frame):
print "%s time out after %d" % (program, timeout)
print pid
os.kill(pid, signal.SIGKILL)
sys.exit(1)
signal.signal(signal.SIGALRM, handler)
signal.alarm(timeout)
p = Popen(program, shell=True, close_fds=True)
pid = p.pid
p.wait()
signal.alarm(0)
return p.returncode
if __name__ == '__main__':
callProgram("sleep 10", 5)
me 8915 0.0 0.0 1712 484 ? S 16:39 0:00 /bin/sh -c sleep 10
me 8916 0.0 0.0 2800 624 ? S 16:39 0:00 sleep 10