2011-05-13 16 views
10

Cuando llamo Kernel.fork() en Windows, me sale este error:El uso de tenedor en Windows con Ruby

!! Unexpected error while processing request: fork() function is unimplemented on this machine 

¿Hay una forma alternativa a la mesa, mientras que en Windows?

Respuesta

2

La forma habitual de obtener una emulación de fork fiel en Windows es instalar Cygwin y ejecutarla con su biblioteca. En este caso, deberá instalar un segundo Ruby, esta vez del paquete Cygwin.

6

Pruebe spawn() - está implementado para Windows.

+2

no, si la respuesta es buena, podría ser breve – akostadinov

0

Como se menciona en DigitalRoss, Cygwin es POSIX compatible, y tiene tenedor.

$ irb 
irb(main):001:0> Kernel.fork() 
=> 4512 
irb(main):002:0> => nil 
irb(main):002:0> quit 

$ uname -a 
CYGWIN_NT-5.1 dumbopc 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin 

$ ruby -v 
ruby 1.9.3p385 (2013-02-06 revision 39114) [i386-cygwin] 

Puede que tenga que utilizar el espejo Cygwin Ports para encontrar el paquete de Ruby.

0

Windows 10 tiene la característica Windows Subsystem for Linux que puede instalar.

https://msdn.microsoft.com/en-us/commandline/wsl/install-win10

Esto le permitirá aprovechar una de las aplicaciones Unix Distro en la tienda de Windows para instalar un shell bash. Luego puede ejecutar su aplicación en un entorno Linux, habilitando efectivamente Fork()