Sto cercando di utilizzare una gemma Ruby chiamata shotgun che richiede il comando fork (2) che ho scoperto è un comando Linux e potrebbe essere disponibile in Cygwin. È possibile renderlo disponibile tramite la shell dei comandi di Windows?Running fork (2) da Windows con Cygwin. Possibile?
risposta
fork(2)
è kludgey in Cygwin, poiché il modello di processo di Windows non consente facilmente che si verifichi. Cygwin può consentire al suo spawn di usarlo, ma subirai un grave colpo di prestazioni poiché Cygwin deve emulare tutto a mano, inclusi copiare i dati eseguibili, copiare gli handle aperti, ecc.
A seconda di come molto shotgun utilizza fork(2)
, questa emulazione potrebbe essere dolorosa o potrebbe essere relativamente minore.
Ecco uno good thread on GameDev.net che discute la mancanza di una funzione fork
su Win32. Portano qualcosa che io non ho la pazienza o la piattaforma di accessibilità per indagare, ma suona certamente divertente, pericoloso, ed esplosivo allo stesso tempo:
Quindi, è necessario bypassare Win32 e chiamare il nativo API ({Nt | Zw} CreateProcess). Il libro "Riferimento Native Api di Windows Nt/2000" ha un esempio "Forking a Win32 Process". Questo potrebbe essere ciò di cui hai bisogno.
Sono incuriosito, ma dubito che Cygwin lo usi. Probabilmente è lì, per ribadire la mia risposta alla tua domanda: molte app Unix si basano su fork
e Cygwin probabilmente lo rende disponibile. Semplicemente non aspettarti miracoli, e dovrai rendere Ruby consapevole di Cygwin ricompilandolo per includere il suo livello di emulazione.
- 1. Running 2 compiti asincroni con grugnito
- 2. windows windows services with cygwin
- 3. Come eseguire windows gvim da cygwin?
- 4. Utilizzo di Python Windows da Cygwin
- 5. fork mongodb in windows
- 6. Definizione degli alias in Cygwin con Windows
- 7. Running Scons 2.2.0 su Windows 7 cmd
- 8. È possibile utilizzare valgrind insieme a Cygwin?
- 9. Node.js non trova il modulo - interferisce con cygwin su Windows
- 10. Windows: separazione dell'input da 2 mouse
- 11. Gitlab: È possibile creare una richiesta di fusione da MY fork a Un altro fork dello stesso progetto
- 12. Running tomcat con eclipse kepler
- 13. Configurazione Hadoop su Windows tramite Cygwin
- 14. Running Fabric con script Python insieme
- 15. scorciatoia cygwin ssh dal desktop di Windows
- 16. È possibile utilizzare GCC senza Cygwin o MinGW?
- 17. Come installare sshpass su Windows tramite Cygwin?
- 18. Running Rails + Passenger + Devise da una sottodirectory?
- 19. Aprire un file da Cygwin
- 20. Running Blanket.js
- 21. Come eseguire Java da Cygwin
- 22. Compile stand alone con Cygwin
- 23. Compile C++ con Cygwin
- 24. Perlbrew funziona con cygwin?
- 25. Running ColdFusion come utente specifico
- 26. Running nodejs in nginx
- 27. installazione cygwin: setup.ini mancante da http://mirrors.kernel.org
- 28. Impossibile eseguire cmake con cygwin
- 29. Running Javascript with CScript?
- 30. Visualizza le variabili di ambiente di Windows in Cygwin
Ottima risposta! Cercherò di ricompilare Ruby con lo strato di emulazione Cygwin domani. Se funziona, sarebbe fantastico; qualche colpo di performance sarebbe ok. L'altro percorso sembra rischioso e richiederebbe molto hacking ... ma è bello sapere cosa è possibile. Grazie molto! – picardo