From: Robert Klemme Date: 2003-09-22T21:49:44+09:00 Subject: Re: fork not available? This is a multi-part message in MIME format. ------=_NextPart_000_0036_01C38113.7B3CF4E0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit "Austin Ziegler" schrieb im Newsbeitrag news:2003919133052.522296@PADD... > On Sat, 20 Sep 2003 01:50:32 +0900, walter@mwsewall.com wrote: > > I am running windows 2000 using the PragProgs install. > > > > > > I have tried fork but get an unimplemented on this machine error. I have > > tried this on multiple windows 2000 machines and get the same error. > > I believe that Windows doesn't support fork(). I know there's a problem with popen() but AFAIK fork() does work on Windows. The attached script produced expected output with ruby on cygwin: 13:58:35 [ruby]: ruby -w forks.rb 1.8.0 Testing: /bin/ls CHILD 2228 forks.rb:23: warning: Insecure world writable dir /cygdrive/c, mode 040777 blah.rb extract.rb.bak forks.rb.bak fw.rb.bak ip.rb.bak client.rb fact.rb fw-http.rb garble.rb junctions.rb client.rb.bak fact.rb.bak fw-http.rb.bak garble.rb.bak junctions.rb.bak extract.rb forks.rb fw.rb ip.rb keynames.txt FINISH 2032 - 2228 Testing: /bin/sleep 1000 CHILD 2692 forks.rb:23: warning: Insecure world writable dir /cygdrive/c, mode 040777 TIMEOUT 13:58:46 [ruby]: Regards robert ------=_NextPart_000_0036_01C38113.7B3CF4E0 Content-Type: application/octet-stream; name="forks.rb" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="forks.rb" def test( cmd, *args ) puts "Testing: #{cmd} #{args.join ' '}" stat = nil pid = fork if pid # parent old = trap( "CLD" ) do stat = true end sleep 10 trap( "CLD", old ) unless stat puts "TIMEOUT" else stat = Process.wait puts "FINISH #{$$} - #{pid}" end else puts "CHILD #{$$}" exec( cmd, *args ) end end puts RUBY_VERSION test( "/bin/ls" ) test( "/bin/sleep", "1000" ) ------=_NextPart_000_0036_01C38113.7B3CF4E0--