2011-09-30 96 views
1

我想使用nohup並將stdout重定向到一個文件,但我不需要存檔我只是想能夠交互式地查看當前的stdout。我想我可以將stdout重定向到一個文件,以便在每次輸出後刷新它。重定向nohup stdout和刷新

??? nohup的紅寶石myapp.rb> output.log &

interactly查看輸出 尾巴-F ./output.log

+0

你需要更清楚一點。如果我正確理解你的問題,你發佈的命令就是你想要的。 'tail -f'旨在讓您看到日誌文件中*當前*發生的事情。 – racic

+0

也是,你的ruby腳本產生了什麼樣的輸出?此輸出數據是否描述了程序的狀態,並且您只想看到最新的狀態更新? – racic

+0

我的目標是避免日誌文件變大,應用程序在任務結束時保存到數據庫,此日誌記錄僅用於實時監視。所以我想知道是否每次覆蓋日誌文件是一個好主意,如果是的話,我該怎麼做。 tail命令執行查看文件的工作,但我注意到它需要一些時間並一次更新多行,而不是一次一行 – veccy

回答

1

你需要看看我的答案在這裏的另一個問題: Linux non-blocking fifo (on demand logging)

假設現在你已經得到了ftee程序準備好了,如果你打電話給你的應用程序是這樣的:

$ mkfifo /tmp/mylog

$ nohup ruby myapp.rb 2>&1 | tee output.log | ftee /tmp/mylog &

你會得到:

  • 全輸出日誌int文件output.log
  • 當前您的應用程序的輸出隨叫隨到通過/tmp/mylog FIFO

現在,如果你想只偷看你的前衛的最新成果做:

$ cat /tmp/mylog

希望這有助於。