J'essaie d'utiliser une gemme Ruby appelée shotgun qui nécessite une commande fork (2) que j'ai découverte est une commande Linux, et qui pourrait être disponible dans Cygwin. Est-il possible de le rendre disponible via le shell de commande Windows?Exécution de la fourche (2) à partir de Windows avec Cygwin. Possible?
Répondre
fork(2)
est critique sous Cygwin, car le modèle de processus Windows ne le permet pas facilement. Cygwin peut permettre à son spawn de l'utiliser, mais vous allez subir un sérieux problème de performance car Cygwin doit tout émuler manuellement - y compris copier les données exécutables, copier les poignées ouvertes, etc.
Selon comment beaucoup de fusils utilisent fork(2)
, cette émulation pourrait être douloureuse ou elle pourrait être relativement mineure.
Voici un good thread on GameDev.net qui parle de l'absence d'une fonctionnalité fork
sur Win32. Ils apportent quelque chose que je n'ai pas la patience ou l'accessibilité plate-forme pour enquêter, mais semble certainement amusant, dangereux et explosif tout en même temps:
Donc, vous devez contourner Win32 et appeler le natif API ({Nt | Zw} CreateProcess). Le livre "Windows Nt/2000 Natif Api référence" a un exemple "Forking un processus Win32". Cela peut être ce dont vous avez besoin.
Je suis intrigué, mais je doute que Cygwin l'utilise. Il est probablement là, pour réitérer ma réponse à votre question - beaucoup d'applications Unix s'appuient sur fork
, et Cygwin le rend probablement disponible. Ne vous attendez pas à des miracles, et vous devrez rendre Ruby conscient de Cygwin en le recompilant pour inclure sa couche d'émulation.
- 1. Utilisation de Boost avec Cygwin sous Windows
- 2. Exécution de programmes XWindow dans Cygwin
- 3. Exécution genhtml en utilisant cygwin Perl.exe dans Windows
- 4. Exécution à distance d'applications Windows à partir d'un serveur Windows
- 5. Exportation d'une variable à partir d'un fichier batch Windows Cygwin
- 6. Exécution de scripts PowerShell à partir d'une application Windows .NET
- 7. Exécution de plusieurs commandes à partir d'un script Windows cmd
- 8. Exécution de PHP sur Windows avec Apache2
- 9. Exécution de Powershell à partir de Perl
- 10. CakePHP Cuire avec Cygwin sous Windows 7
- 11. Exécution de tous les tests NUnit dans tous les assemblys à partir de la ligne de commande Cygwin
- 12. Exécution de la ligne de commande à partir de l'application Windows
- 13. Exécution de la tâche Thor à partir de la migration
- 14. Exécution d'une application GTK + sur une machine Linux, à partir de Windows
- 15. Compilation avec gcc (cygwin sur windows)
- 16. Exécution de blocs à partir de NSArray?
- 17. appel cmd à partir de Windows python erreur 2
- 18. Fourche avec une prise d'écoute
- 19. Exécution simultanée de 2 threads
- 20. Exécution de rake à partir de cron
- 21. Applications de fourche appel système
- 22. Exécution de Tomcat à partir de NetBeans
- 23. Exécution de pdb à partir de pdb
- 24. Exécution d'autres programmes à partir de Java
- 25. Perl exécution à partir de la ligne de commande question
- 26. Exécution de Latex à partir de C#
- 27. Exécution .exe à partir de Javascript
- 28. Exécution d'un Zend_Application à partir de la ligne de commande?
- 29. Concept de fourche en C#
- 30. Connexion de la branche git à la fourche GitHub
Bonne réponse! Je vais essayer de recompiler Ruby avec la couche d'émulation Cygwin demain. Si cela fonctionne, ce serait génial. un coup de performance serait ok. L'autre chemin semble risqué, et il faudrait beaucoup de piratage ... mais il est bon de savoir ce qui est possible. Merci beaucoup! – picardo