在PTY.spawn中“抛出”有什么问题吗?

时间:2013-08-28 09:11:09

标签: ruby process

这是一个开发机器和测试目的。我正在尝试启动一个启动服务器的脚本,然后在输出满足条件时忽略它。这个过程没有结束,所以我不能使用反引号。我将独立-QUIT进程(脚本中的其他位置)。到目前为止,这是我最接近的:

require "pty"
catch :ready do
  begin
    PTY.spawn( "bin/start" ) do |stdin, stdout, pid|
      begin
        stdin.each { |line|
          throw(:ready) if line['worker ready']
        }
      rescue Errno::EIO
        puts "no more output"
      end
    end
  rescue PTY::ChildExited
    puts "child process exit"
  end
end # === end of catch block

# Continue with the rest of the script...

到目前为止它可以工作,但我是Ruby和流程的新手。我在网上看到的所有其他解决方案都需要管道,叉子和Process.detach。我在throw时使用PTY.spawn做错了什么?

0 个答案:

没有答案