Chiyuan Zhang | 15 May 18:05

Re: ssh to execute remote ruby script

Maybe some environment variables is not set properly when logged in as
non-interactive session? It seems interactive shell and non-interactive
ones do not run the same bunch of start up scripts. like ~/.profile,
~/.bashrc , etc.

On Thu, May 15, 2008 at 11:53 PM, Blake Miller <blakeage <at> hotmail.com> wrote:
> I'm using 'net/ssh' to ssh into a OS X server and run a ruby script,
> like this:
>
>  Net::SSH.start( "xxx.xxx.xxx", :username => 'xxx', :password => 'xxx'
> ) do | session |
>    shell = session.shell.open
>    shell.exec "ruby /usr/local/pgsql/share/migrate.rb
> #{params['host']}"
>  end
>
> The migrate.rb looks like this:
>
>  require 'rubygems'
>  ...some ruby code
>
> For some reason, the script fails to execute anything after the require
> 'rubygems' line.  If I remove that line, the script will run, but
> obviously I cannot use any gems, which I need.
>
> If I ssh via terminal to the server, I can run the script fine with:
> ruby /usr/local/pgsql/share/migrate.rb 1
>
> I can't figure out why, when ssh'ing via the net/ssh package, the remote
> script cannot include rubygems.
>
> Any ideas?
> --
> Posted via http://www.ruby-forum.com/.
>
>

--

-- 
pluskid


Gmane