title: Kill or terminate subprocess when timeout?
body: <p>I would like to repeatedly execute a subprocess as fast as possible. However, sometimes the process will take too long, so I want to kill it. 
  I use signal.signal(...) like below:</p>
  
  <pre><code>ppid=pipeexe.pid
  signal.signal(signal.SIGALRM, stop_handler)
  
  signal.alarm(1)
  .....
  def stop_handler(signal, frame):
      print 'Stop test'+testdir+'for time out'
      if(pipeexe.poll()==None and hasattr(signal, "SIGKILL")):
           os.kill(ppid, signal.SIGKILL)
           return False
  </code></pre>
  
  <p>but sometime this code will try to stop the next round from executing.
  Stop test/home/lu/workspace/152/treefit/test2for time out
  /bin/sh: /home/lu/workspace/153/squib_driver: not found ---this is the next execution; the program wrongly stops it.</p>
  
  <p>Does anyone know how to solve this? I want to stop in time not execute 1 second the time.sleep(n) often wait n seconds. I do not want that I want it can execute less than 1 second</p>