http://github.com/jeremyd/terminator
terminator据说这定时的比较准,不过恶心的事,作者Readme上写的例子不对,这Timeout错误一直没有捕获到
今天试了下,如下的代码可以获取的到这个错误

require "rubygems"
require "terminator"
def xx
raise "Other error"
end

Terminator.terminate 1 do
begin
    xx
rescue Terminator::Error
p "timeout error"
rescue
p "Other error"
end
end

先暂时这样,至于为什么只在里面才有用,以后再探求