All pastes #616193 Raw Edit

Zeug

public text v1 · immutable
·published 2007-07-12 14:39 UTC
rendered paste body
import 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