Feature #6793
closedeasier ability to "run as the currently running ruby"
Description
Hello all. I couldn't remember if this had been requested before or not but...
It would be kind to be able to do:
current_ruby = OS.ruby_bin
system("#{current_ruby} another_file.rb")
And thus guarantee execution of a sub-file using the same ruby executable.
Today we have
system("#{Gem.ruby} another_file.rb")
but I'd like to have something available without loading full rubygems.
Python equivalent: sys.executable
Suggestion:
OS.ruby_bin # or OS.executable, etc.
=> "C:/installs/Ruby193p194/bin/ruby.exe"
or
RbConfig.???
=> "C:/installs/Ruby193p194/bin/ruby.exe"
Thanks.
-roger-
Updated by luislavena (Luis Lavena) over 12 years ago
=begin
Already available, no RubyGems involved:
C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe
=end
Updated by Eregon (Benoit Daloze) over 12 years ago
luislavena (Luis Lavena) wrote:
=begin
Already available, no RubyGems involved:C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe=end
Nice, although it's not available in 1.8.
I think the other important part about this subject is #6648: ability to retrieve VM flags, which would allow to relaunch the interpreter the same way (full path to the binary + arguments/flags).
Currently, I work around it by using ps -o args -p pid
and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).
Updated by naruse (Yui NARUSE) over 12 years ago
- Status changed from Open to Feedback
Eregon (Benoit Daloze) wrote:
luislavena (Luis Lavena) wrote:
=begin
Already available, no RubyGems involved:C:\Users\Luis>ruby --disable-gems -rrbconfig -v -e "puts RbConfig.ruby"
ruby 2.0.0dev (2012-07-13 trunk 36378) [i386-mingw32]
C:/Users/Luis/Tools/Ruby/ruby-2.0.0dev-i386-mingw32/bin/ruby.exe=end
Nice, although it's not available in 1.8.
I think the other important part about this subject is #6648: ability to retrieve VM flags, which would allow to relaunch the interpreter the same way (full path to the binary + arguments/flags).
Currently, I work around it by using
ps -o args -p pid
and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).
argv[0] is not reliable on some environment.
See also my comment on #4046.
Updated by Eregon (Benoit Daloze) over 12 years ago
naruse (Yui NARUSE) wrote:
Eregon (Benoit Daloze) wrote:
Currently, I work around it by using
ps -o args -p pid
and GetCommandLineA(), which is far from optimal when we know it's so easily accessible for the VM (argc/args).argv[0] is not reliable on some environment.
See also my comment on #4046.
I meant args to get the VM flags (args[1..argc-1]).
I'm fine using RbConfig for getting the path to the ruby binary for the moment.
I admire your effort to try to solve it without RbConfig.
Sorry for discussing of #6648 here, I should have answered on that thread.