Ruby Timeout :: timeout无法在open3 ssh命令上运行

时间:2018-03-13 18:58:52

标签: ruby ssh timeout

我试图使用Ruby的Timeout :: timeout机制来中止挂起的ssh命令,但它似乎并没有起作用。如果我在ssh调用之前滑入无限循环,它将终止,所以我知道我做得对。这笔交易是什么?是ssh还是open3?

代码很简单:

require 'timeout'
require 'open3'

begin
  status = Timeout::timeout(5) do
    r = Open3.capture3('ssh root@192.168.1.1')
    puts 'Debug 1'
  end
rescue Timeout::Error
  puts 'Timeout exceeded'
end

如果有任何类型的提示,它将无限期地保留在那里,而不会打印超出'超时'或者'调试1'。

0 个答案:

没有答案