2011-10-07 136 views
-1

我用方法system來啓動一個進程。該進程的pid被存儲在一個文件中worker.pid日誌進程輸出

但是我需要生成這個進程的日誌,我該如何存儲這個進程的輸出?

進程正在被該命令創建:

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

P.S:我使用的紅寶石1.8,背景= YES那倒工作。 P.S.2:platform linux

回答

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 

我建議你閱讀文檔, 但叉掉一個子進程和訪問它的輸出你也可以寫入流,並做各種聰明的東西。