我想尽可能快地重复执行一个子进程。但是,有时这个过程需要很长时间,所以我想杀死它。 我用signal.signal(...)象下面这样:超时时杀死或终止子进程?
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
但有时这些代码会试图停止执行下一轮。 停止测试/ home/lu/workspace/152/treefit/test2超时 /bin/sh:/ home/lu/workspace/153/squib_driver:找不到---这是下一次执行;该程序错误地停止它。
有谁知道如何解决这个问题?我想在时间停止不执行1秒的时间。睡眠(n)经常等待n秒。我不希望我希望它可以执行少于1秒
所以基本上如果子进程运行超过1秒,你想杀了它并开始下一个?它是否正确? – 2010-11-11 20:06:28
你如何创建你的子过程?因为它看起来像表达式__ pid = pipeexe.pid__正在获取将要运行的下一个子进程! – mouad 2010-11-11 21:03:33
所以基本上如果子进程运行超过1秒,你想杀了它并开始下一个?它是否正确?是的,这是正确的 – user504909 2010-11-11 23:31:53