我使用方法system
来启动流程。该进程的pid存储在文件worker.pid
但是我需要生成此过程的日志,如何存储此过程的输出?
使用此命令创建进程:
system "bundle exec rake resque:work >> ./resque.log QUEUE=* PIDFILE=#{pid_file} &"
P.S。:我正在使用ruby 1.8,BACKGROUND = yes won'tt work。 P.S.2:平台linux
答案 0 :(得分:1)
也许您正在寻找的是IO.popen
这使您可以分离子进程并通过IO对象访问它的输出
# 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
我建议你阅读文档, 但你也可以写信给流,并做各种聪明的事情。
答案 1 :(得分:0)
如果我理解你想要正确实现的目标,那么你正在寻找Open3课程。 http://www.ruby-doc.org/stdlib-1.8.7/libdoc/open3/rdoc/Open3.html