Fondamentalmente sto facendo la stessa domanda come Spawn a background process in Ruby, eccetto che ho bisogno di generare un processo in background in un ambiente Windows! Sfortunatamente, la mia ricerca ha rivelato che Windows non supporta le forcelle Ruby (solo i cucchiai. Rimshot!).Crea un processo in background in Ruby su Windows?
risposta
La libreria win32-process, parte della suite Win32Utils, è probabilmente quello che stai cercando.
http://win32utils.rubyforge.org/
La biblioteca Win32 processo aggiunge i metodi Process.create e Process.fork per MS Windows. Inoltre, fornisce diverse implementazioni dei metodi wait, wait2, waitpid e waitpid2. Il metodo Process.create consente di creare processi nativi di MS Windows utilizzando una varietà di opzioni di configurazione differenti.
L'implementazione di Process.fork deve essere considerata sperimentale e non utilizzata nel codice di produzione.
Installazione: gem install win32-processo
'Process.fork' è stato rimosso da win32-process dalla versione 0.7.0 (vedere [pagina github] (https://github.com/djberg96/win32-process)), è possibile utilizzare' Process.spawn' come @ rogerdpack suggerisce –
risposta di Charles è grande. Ho anche scoperto che posso utilizzare di Windows di start
, ad esempio, per eseguire il comando dir
in quanto tale:
system('start dir')
Questo genera una finestra cmd con il processo, che è indesiderabile in alcune circostanze. Tuttavia, se questo è tollerabile, allora non è necessario la dipendenza win32-processo :) Process.spawn
per favore aggiungi un esempio pienamente funzionante per il tuo codice – stack1
@ stack1 Il mio esempio di codice ora contiene un comando reale, 'dir'. Qualsiasi comando tu usi è arbitrario, a patto che possa essere risolto dal prompt dei comandi. –
di 1.9.x sembra funzionare bene, vedere l'ultima sezione del http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes
+1 per "Rimshot! " – rogerdpack