2011-09-30 94 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

希望这有助于。