【问题标题】:spawn a child process using ruby使用 ruby​​ 生成子进程
【发布时间】:2015-02-16 05:46:28
【问题描述】:

我是红宝石新手。 我有一个终端命令来执行某些进程并将结果输出为 xml 文件。(通过终端可以正常工作)

cmd = '"C:\Program Files\shark\hark"  -f "ains 02:04" -eT xml > test12.xml'

我需要使用 ruby​​ 代码执行此命令。

但是当我尝试使用 ruby​​ 代码时,它会输出 xml 文件,其内容将为零。如果我使用 CTRL + C 退出终端,我将获得 xml 文件中的完整数据

为了退出子进程,我试图杀死该进程并从任务列表中杀死了 ruby​​.exe。但是 xml 文件中没有发生任何事情。它的内容仍然为零

代码

def execute 
   cmd = '"C:\Program Files\shark\hark"  -f "ains 02:04" -eT xml > test12.xml'
  @pid = Process.spawn(cmd)
  sleep(100)
  exec( 'Taskkill /F /IM ruby.exe' )
end
execute

我的代码有什么问题。

【问题讨论】:

    标签: ruby


    【解决方案1】:

    我认为Process.wait 不支持流重定向。换句话说,|>>>< 不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 1970-01-01
      • 2023-03-10
      • 2015-10-30
      • 2013-01-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多