2011-10-07 2 views
-1

system 메서드를 사용하여 프로세스를 시작했습니다. 그 프로세스의 PID는 파일에 저장됩니다 worker.pid로그 프로세스 출력

그러나이 프로세스의 로그를 생성해야합니까, 어떻게이 프로세스의 출력을 저장할 수 있습니까?

과정

이 명령으로 생성되는 :

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

P.S을 : 나는 루비 1.8, 배경 = 예 증언 요구 무산 작업을 사용하고 있습니다. P.S.2 : 플랫폼 리눅스

답변

1

이것은 당신이 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 

난 당신이 문서 을 읽을 수는 있지만 제안을 통해 출력의 서브 프로세스 및 액세스를 포크 할 수 IO.popen

당신 스트림에 쓸 수도 있고 모든 종류의 영리한 것들을 할 수 있습니다.

0

올바르게 달성하려는 것을 이해하고 있다면 Open3 클래스를 찾고 있습니다. 당신이 찾고있는 어쩌면 무엇 http://www.ruby-doc.org/stdlib-1.8.7/libdoc/open3/rdoc/Open3.html

+0

">>"매개 변수와 같은 것을 기대하고 있습니다 :'./something >> output.txt' 이제 C 코드, << << example.in >> 예제로 할 수 있습니다. 나는 그 같은 것을 찾고 있었다. –

관련 문제