[MacRuby-devel] MacRuby with Subprocesses
Louis-Philippe
default at spiralix.org
Wed Nov 3 07:31:06 PDT 2010
Hi all,
I'm looking around MacRuby to find a way to run a subprocess and monitor
it, here is what I tried:
NSTask:
framework "foundation"
task = NSTask.launchedTaskWithLaunchPath("/bin/ls", arguments:"-l")
p task.isRunning
p task.standardOutput
=> Segmentation fault
Open4:
require 'rubygems'
require 'popen4'
status = POpen4::popen4('irb') { |stdout,stderr,stdin,pid|
stdin.puts "a = 1"
stdin.puts "a == 1"
stdin.close
puts "pid: #{pid}"
puts "stdout: #{stdout.read.strip}"
puts "stderr: #{stderr.read.strip}"
}
puts "status: #{status.inspect}"
puts "exitstatus: #{status.exitstatus}"
=> /Library/Frameworks/MacRuby.framework/Versions/0.7/usr/lib/ruby/Gems/1.9.2/gems/open4-1.0.1/lib/open4.rb:15:in
`open4:': fork() function is unimplemented on this machine
(NotImplementedError)
from
/Library/Frameworks/MacRuby.framework/Versions/0.7/usr/lib/ruby/Gems/1.9.2/gems/POpen4-0.1.4/lib/popen4.rb:75:in
`popen4:'
from
/Users/lpperron/Documents/lllaptop/git_repos/Redis/testResque/testOpen4.rb:3:in
`<main>'
Open3:
require 'open3'
puts "starting..."
Open3.popen3('irb') { |stdin,stdout,stderr|
stdin.puts "a = 1"
stdin.puts "a == 1"
stdin.close
puts "stdout: #{stdout.read.strip}"
puts "stderr: #{stderr.read.strip}"
}
=> starting...
So... NSTask segfaults... Open4 cannot work because of unimplemented
'fork' in MacRuby and Open3 hangs?
Anybody has an other solution to launch and monitor a subprocess?
Thanks!
L-P
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-devel/attachments/20101103/f8bc52ad/attachment.html>
More information about the MacRuby-devel
mailing list