Issue #7358 has been reported by felipec (Felipe Contreras). ---------------------------------------- Bug #7358: Wrong fd redirection on fork https://bugs.ruby-lang.org/issues/7358 Author: felipec (Felipe Contreras) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: 1.9.3p327 It seems fd redirecton only works with spawn, not with fork+exec (at least for fd 3). % ruby -v ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux] #!/usr/bin/env ruby tmp = File.new('/tmp/foo', File::CREAT | File::WRONLY) cmd = ['echo', 'yes'] pid = Process.spawn(*cmd, 3 => tmp) Process.wait(pid) pid = fork do Process.exec(*cmd, :close_others => true, 3 => tmp) end Process.wait(pid)
on 2012-11-15 13:34
on 2012-11-17 02:40
Issue #7358 has been updated by drbrain (Eric Hodel).
Status changed from Open to Rejected
=begin
If you want data to show up in ((%/tmp/foo%)), redirect stdout in the
child process. Setting file descriptor 3 does nothing since ((%echo%))
makes no use of it.
#!/usr/bin/env ruby
tmp = File.new('/tmp/foo', File::CREAT | File::WRONLY)
cmd = ['echo', 'yes']
pid = Process.spawn(*cmd, out: tmp)
Process.wait(pid)
pid = fork do
Process.exec(*cmd, close_others: true, out: tmp)
end
Process.wait(pid)
=end
----------------------------------------
Bug #7358: Wrong fd redirection on fork
https://bugs.ruby-lang.org/issues/7358#change-33005
Author: felipec (Felipe Contreras)
Status: Rejected
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: 1.9.3p327
It seems fd redirecton only works with spawn, not with fork+exec (at
least for fd 3).
% ruby -v
ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-linux]
#!/usr/bin/env ruby
tmp = File.new('/tmp/foo', File::CREAT | File::WRONLY)
cmd = ['echo', 'yes']
pid = Process.spawn(*cmd, 3 => tmp)
Process.wait(pid)
pid = fork do
Process.exec(*cmd, :close_others => true, 3 => tmp)
end
Process.wait(pid)
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.