In child_program JRuby (tested with 1.1) throws SystemExit which contains the exit status.
systemu.rb
Index: .
===================================================================
--- . (revision 602)
+++ . (working copy)
@@ -188,6 +188,9 @@
PIPE.close
exec *argv
+ rescue SystemExit => e
+ # jruby
+ exit e.status
rescue Exception => e
PIPE.write Marshal.dump(e) rescue nil
exit 42
|