Bash:在拖尾日志文件时等待进程退出

时间:2012-09-10 19:49:56

标签: bash

在bash脚本中,我正在使用wait等待子进程的pid。该子进程正在写入日志文件。在bash脚本中是否有一种方法可以将该日志文件拖出std out,同时等待该进程完成?

3 个答案:

答案 0 :(得分:3)

在等待命令完成时,使用tail命令跟踪文件。

command &
cmdpid=$!
tail -f -n +0 logfile &
wait $cmdpid
kill $!

这与William的解决方案类似,但有一个重要的区别:如果command完成所需的时间比cat打印文件的时间长,它将正确打印日志文件(很可能,因为cat非常快)。 -n +0选项告诉tail在更新开始之前打印整个文件。

答案 1 :(得分:0)

在后台运行cat:

cmd-that-logs-to-file &
pid=$!
cat file &
wait $pid
kill $!  # Kill the cat

答案 2 :(得分:0)

这使得更简单:

aeCreateTimeEvent