Регистрировать вывод процесса - PullRequest
0 голосов
/ 07 октября 2011

Я использовал метод system, чтобы запустить процесс. pid этого процесса хранится в файле worker.pid

однако мне нужно создать журнал этого процесса, как я могу сохранить результаты этого процесса?

процесс создается с помощью этой команды:

system "bundle exec rake resque:work >> ./resque.log QUEUE=* PIDFILE=#{pid_file} &"

P.S .: Я использую ruby ​​1.8, BACKGROUND = yes не сработает. П.S.2: платформа Linux

Ответы [ 2 ]

1 голос
/ 07 октября 2011

Возможно, вы ищете это IO.popen

Это позволяет отключить подпроцесс и получить доступ к его выводу через объект ввода-вывода

# fork off a one-off task
# and return the output as a string
ls = IO.popen("ls")
ls.read

# or return an array of lines
IO.popen("ls").readlines

# or create a continuing task
tail = IO.popen("tail -f /some/log/file.log")
loop do
  puts tail.gets
end

Я предлагаю вам прочитать документацию, но вы также можете писать в поток и делать всякие умные вещи.

0 голосов
/ 07 октября 2011

Если я понимаю, что вы пытаетесь достичь правильно, вы ищете класс Open3.http://www.ruby -doc.org / STDLIB-1.8.7 / libdoc / open3 / RDoc / Open3.html

...