Ruby subprocess

I am wanting inside of a ruby script to execute another ruby script in
a subprocess in the same manner as exec(). As first thought I
considered seeing if you can lookup the ruby executable path from
within ruby, but I couldn’t find a way of doing it. If that was the
case you could just say exec("/usr/bin/ruby " + “file.rb”).

On Sun, 25 Feb 2007, badcherry wrote:

I am wanting inside of a ruby script to execute another ruby script in
a subprocess in the same manner as exec(). As first thought I
considered seeing if you can lookup the ruby executable path from
within ruby, but I couldn’t find a way of doing it. If that was the
case you could just say exec("/usr/bin/ruby " + “file.rb”).

 require 'rbconfig'

 def which_ruby
   c = ::Config::CONFIG
   File::join(c['bindir'], c['ruby_install_name']) << c['EXEEXT']
 end

 ruby = which_ruby

 exec ruby, 'file.rb'

probably won’t work on windows since the one-click breaks (or used to
break)
rbconfig.

-a

On 25.02.2007 05:52, badcherry wrote:

I am wanting inside of a ruby script to execute another ruby script in
a subprocess in the same manner as exec(). As first thought I
considered seeing if you can lookup the ruby executable path from
within ruby, but I couldn’t find a way of doing it. If that was the
case you could just say exec("/usr/bin/ruby " + “file.rb”).

Depending on the platform you can use fork like this:

child_pid = fork do

child code

load “file.rb”
end

Process.wait(child_pid)
print "Child ", child_pid, " exited with ", $?.exitstatus, “\n”

See
http://www.ruby-doc.org/core/classes/Kernel.html#M005750
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html

HTH

robert

On Feb 24, 10:59 pm, [email protected] wrote:

 exec ruby, 'file.rb'

probably won’t work on windows since the one-click breaks (or used to break)
rbconfig.

This will work for now, but didn’t test it on windows yet. Thanks,
much.