12

我基本上问了与Spawn a background process in Ruby相同的问题,除了我需要在 Windows 环境中生成一个后台进程!不幸的是,我的研究表明 Windows 不支持 Ruby 分叉(只有勺子。Rimshot!)。

4

3 回答 3

13

win32-process 库是 Win32Utils 套件的一部分,可能就是您所追求的。

http://win32utils.rubyforge.org/

win32-process 库为 MS Windows 添加了 Process.create 和 Process.fork 方法。此外,它还提供了 wait、wait2、waitpid 和 waitpid2 方法的不同实现。Process.create 方法允许您使用各种不同的配置选项创建本机 MS Windows 进程。

Process.fork 实现应该被认为是实验性的,而不是在生产代码中使用。

安装:gem install win32-process

于 2010-10-01T15:23:02.630 回答
6

查尔斯的回答很棒。我还发现我可以利用 Windows 的start,例如执行dir命令:

system('start dir')

这会随进程生成一个 cmd 窗口,这在某些情况下是不可取的。但是,如果这是可以容忍的,那么您不需要 win32-process 依赖项:)

于 2010-10-01T15:40:13.070 回答
3

1.9.x 的 Process.spawn 似乎运行良好,请参阅http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes的最后一部分

于 2012-04-17T20:12:40.280 回答