I can't help but notice that all of those methods take a single command line string as a parameter. That's arguably fine on Windows, but not on Linux. So: how is that string broken down into the array of strings for the ultimate execve() call, in Ruby? Does Ruby parse it on its own (using some dialect of shell for quoting), or does it invoke the shell to do the heavy lifting, or?..