Forum: Ruby net-ssh : popen3

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Philip Müller (Guest)
on 2008-11-04 17:48
(Received via mailing list)
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.
Philip Müller (Guest)
on 2008-11-04 17:48
(Received via mailing list)
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
This topic is locked and can not be replied to.