Ruby:cgi + ssh不能一起工作

时间:2014-01-22 12:49:38

标签: ruby ssh cgi

无法强制'cgi'和'ssh'模块一起工作。例如,这段代码

#!/usr/bin/ruby1.9

require 'cgi'
require 'net/ssh'

cgi = CGI.new

cgi.out("status" => "302", "Connection" => "close", "Content-Length" => 1, "Location" => 'http://google.com') {' '}

2.times { |t| %x[ echo 'do something #{t}' >> /tmp/log.log ] }

%x[ echo 'before ssh' >> /tmp/log.log ]

Net::SSH.start('somehost.domain', 'someuser', :keys => [ "/tmp/id_rsa" ]) do |ssh|
  ssh.exec("echo 'doing some job on remote host'; sleep 5")
end

%x[ echo 'after ssh' >> /tmp/log.log ]

在web-server下运行时产生以下输出到/ tmp / log(注意ssh-session开始后没有输出):

do something 0
do something 1
before ssh

当我从shell运行时,它完全按照我的预期执行:

do something 0
do something 1
before ssh
after ssh

这是一个错误还是我做错了什么?

0 个答案:

没有答案