在我的应用程序中,我想在指定的时间后终止我的SSH连接的exec!
命令。执行Net-ssh超时?
我发现:timeout
为Net::SSH.start
命令,但在文档后面,这只用于初始连接。有没有相当于exec
命令的东西?
我的第一个猜想是不使用exec!
,因为这会等待命令完成,但使用exec
和环绕有一个循环,每一次迭代检查执行状态和给定的时间量之后失败的调用。
这样的事情,如果我理解正确的文档:
server = NET::SSH.start(...)
server.exec("some command")
start_time = Time.now
terminate_calculation = false
trap("TIME") { terminate_calculation = ((Time.now - start_time) > 60) }
ssh.loop(0.1) { not terminate_calculation }
然而,这似乎脏给我。我期待像server.exec("some command" { :timeout=>60})
这样的东西。也许有一些内置函数来实现这个功能?