Вот так попробуйте:
import signal
import time
import subprocess
def set_handler(process, timeout):
def handler(signum, frame):
print "Handler is called at %s" % time.strftime("%H:%M:%S")
process.terminate()
print 'Terminated process %d' % process.pid
signal.signal(signal.SIGALRM, handler)
signal.alarm(timeout)
print 'Started at %s' % time.strftime("%H:%M:%S")
proc = subprocess.Popen(['/bin/sleep', '100'])
set_handler(proc, 5)
proc.wait()
print 'Finished at %s' % time.strftime("%H:%M:%S")
signal.alarm(0)
PS: На php слишком много букв и под виндой не будет работать.