Net-ssh : popen3


#1

Hi everybody,

I want to start and interact with a process on another machine.
After reading example 20.10 in “The Ruby Cookbook” and doing some
internet
research I decided to use net/ssh and popen3.
Sadly, it does not work - it just doesn’t do anything noticeable, it
doesn’t even terminate.

Here’s my code:

----------- CODE ----------------

require ‘rubygems’
require ‘net/ssh’

def run_remotely(command)
Net::SSH.start(“localhost”, “tester”, :password => “pass”) do
|session|
session.process.popen3(command) do |stdin, stdout, stderr|
yield stdin, stdout, stderr
end
end
end

run_remotely(‘cat’) do |stdin, stdout, stderr|
stdin.puts ‘Line one.\n’
end

----------- /CODE ----------------

Why doesn’t this work?

Thanks,

Philip

P.s.:
I have successfully used channel.exec to execute “ls”, but it doesn’t
seem
like it allows two-way communication.


#2

On Tue, 04 Nov 2008 16:09:05 +0100, Philip Müller removed_email_address@domain.invalid
wrote:

Sorry…

run_remotely(‘cat’) do |stdin, stdout, stderr|
stdin.puts ‘Line one.\n’
end

is supposed to be

run_remotely(‘cat’) do |stdin, stdout, stderr|
stdin.puts ‘Line one.\n’
puts stdout.read
end

Regards

Philip