Я использую гем open4
и у меня проблемы с чтением из стандартного вывода порожденных процессов. У меня есть программа ruby, test1.rb
:
print 'hi.' # 3 characters
$stdin.read(1) # block
И еще одна программа ruby в том же каталоге, test2.rb
:
require 'open4'
pid, stdin, stdout, stderr = Open4.popen4 'ruby test1.rb'
p stdout.read(2) # 2 characters
Когда я запускаю вторую программу:
$ ruby test2.rb
Он просто сидит навсегда, ничего не печатая. Почему это происходит, и что я могу сделать, чтобы остановить это?