Griddo Griddo - 1 year ago 164
Ruby Question

How to retrieve exit status from ruby Open3.popen3()?

I seem to be stuck trying to retrieve the exit status of a shell command which was started from ruby's Open3.popen3()-method.

Here's my code:

require 'open3'
stdin, stdout, stderr = Open3.popen3('ls')

When I now try to access
it still is

Is it possible to retrieve the exit status after all?


is not the command I'm trying to use in my script. I just used this to give an example. My script is a bit more complex and contains user input, which is why I need the sanitizing functionality of Open3.

- I've also tried the block variant of popen3, but didn't succeed with that either.

Answer Source

popen3 yields/returns four parameters, stdin, stdout, stderr and wait_thr. wait_thr contains a method wait_thr.value which returns the exit status of the command (in fact, it is a Process::Status object according to documentation). Also have a look at

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download