【发布时间】:2011-04-19 22:11:25
【问题描述】:
我基本上和Spawn a background process in Ruby 提出了同样的问题,除了我需要在 Windows 环境中生成一个后台进程!不幸的是,我的研究表明 Windows 不支持 Ruby 分叉(只有勺子。Rimshot!)。
【问题讨论】:
标签: ruby windows fork background-process
我基本上和Spawn a background process in Ruby 提出了同样的问题,除了我需要在 Windows 环境中生成一个后台进程!不幸的是,我的研究表明 Windows 不支持 Ruby 分叉(只有勺子。Rimshot!)。
【问题讨论】:
标签: ruby windows fork background-process
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
【讨论】:
Process.fork 自 0.7.0 起已从 win32-process 中删除(请参阅github page),您可以按照@rogerdpack 的建议使用Process.spawn
查尔斯的回答很棒。我还发现我可以利用 Windows 的start,例如执行dir 命令:
system('start dir')
这会随进程生成一个 cmd 窗口,这在某些情况下是不可取的。但是,如果这是可以容忍的,那么您不需要 win32-process 依赖项:)
【讨论】:
dir。你使用哪个命令都是任意的,只要它可以被命令提示符解析即可。
1.9.x 的 Process.spawn 似乎运行良好,见http://en.wikibooks.org/wiki/Ruby_Programming/Running_Multiple_Processes的最后一段
【讨论】: