Spawn un processus d'arrière-plan dans Ruby sous Windows?
-
27-09-2019 - |
Question
Je demande essentiellement la même question que Spawn un processus d'arrière-plan dans Ruby , sauf que je dois lancer un processus d'arrière-plan dans un environnement Windows! Malheureusement, mes recherches ont révélé que Windows ne supporte pas les fourches Ruby (uniquement des cuillères. Rimshot! ).
La solution
La bibliothèque win32-processus, une partie de la suite Win32Utils, est probablement ce que vous êtes après.
http://win32utils.rubyforge.org/
La bibliothèque win32 processus ajoute les méthodes Process.create et Process.fork pour MS Windows. En plus d'ajouter, il fournit des implémentations différentes de l'attente, WAIT2, Waitpid et méthodes de waitpid2. La méthode Process.create vous permet de créer des processus natifs MS Windows en utilisant une variété de différentes options de configuration.
La mise en œuvre Process.fork doit être considérée comme expérimentale et non utilisé dans le code de production.
Installation: gem install win32 processus
Autres conseils
La réponse de Charles est grande. J'ai aussi découvert que je peux utiliser le start
de Windows, par exemple pour exécuter la commande dir
en tant que tel:
system('start dir')
génère un fenêtre cmd avec le processus, ce qui est indésirable dans certaines circonstances. Toutefois, si cela est tolérable, alors vous n'avez pas besoin de la dépendance win32 processus:)
Process.spawn de 1.9.x semble bien au travail, voir la dernière section de http: // en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes