Running an executable local file with a Ruby script?

I’m having a lot of problems just running an executable local file with
a Ruby script. I go to the directory with the file (call the executable
file ‘mkplots’), then try to run that file.

I’ve tried all sorts of system and back-quoted commands, and nothing
works. If I go to the UNIX command line and simply type the file name,
it runs fine.

What am I doing wrong?? Why doesn’t the following command work:

system( “mkplots” )

— or —

mkplots

Joost D. wrote:

Thomas L. [email protected] writes:

system( “mkplots” )
Is the current path in your PATH environment variable? If not, use

system( “./mkplots” )

I’ve tried that. I don’t get any errors, but it also doesn’t produce
any output (like it does if I use the command line).

Thomas L. [email protected] writes:

system( “mkplots” )
Is the current path in your PATH environment variable? If not, use

system( “./mkplots” )

Replace ./mkplots with a very simple executable (or script) which does
something like writing to a file, including any error messages sent to
stderr. Temporarily (!) give it maximal permissions, before reducing it
to the same permissions as mkplots.

This will allow you to see whether the executable is actually being
executed or not and whether any errors are being generated. In my
experience there are often problems with permissions, especially if the
script is being run by a web server.

Dave B. wrote:

Replace ./mkplots with a very simple executable (or script) which does
something like writing to a file, including any error messages sent to
stderr. Temporarily (!) give it maximal permissions, before reducing it
to the same permissions as mkplots.

This will allow you to see whether the executable is actually being
executed or not and whether any errors are being generated. In my
experience there are often problems with permissions, especially if the
script is being run by a web server.

This is kind of dumb (and certainly not ‘The Ruby Way’, but I got it to
work with this workaround.

(1) Create a little Korn shell file (save as make_plots.sh, change
permissions with a chmod +x make_plots.sg ):

#! /bin/ksh
mkplots

(2) Run it with the following command in Ruby

system( “make_plots.sh” )

However, this really offends me to have to do this, so any further ideas
are welcome…

I am not familiar enough with calls in Ruby to system in Linux at this
moment, but in Windows, I was recently doing this, and had to use
something
like this: system"call command"

If I simply did system"command" it did not operate like I expected.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs