У меня есть сценарий Ruby, который порождает процесс и использует функцию ожидающего ожидания запроса на ввод, обеспечения этого ввода и затем, когда процесс завершится, для запуска нового процесса.что сценарий не дождался завершения первого процесса и выполнил следующую строку в сценарии.
Итак, я добавил Process.wait (pid) в скрипт, но теперь скрипт зависает в ожидании ввода на втором PTY.spawn
в Process.wait(pid)
.
Я запускаю скрипт с Ruby 1.9.2, так как я знаю, что были некоторые проблемы с PTY.spawn
в Ruby 1.8.7.
Сценарий выглядит следующим образом:
#!/usr/bin/env ruby
require 'pty'
require 'expect'
PTY.spawn(" apt-get install policycoreutils ") do |reader, writer, pid|
puts reader.expect(/Do you want to continue/)
writer.printf("Y\n")
Process.wait(pid)
end
PTY.spawn(" apt-get install libmagick9-dev ") do |reader, writer, pid|
puts reader.expect(/Do you want to continue/)
writer.printf("Y\n")
Process.wait(pid)
end
Кто-нибудь знает, почему сценарий висит на Process.wait(pid)
для второго PTY.spawn
?