在 bash 脚本中,我正在使用 wait 等待子进程的 pid。该子进程正在写入日志文件。bash脚本中有没有办法将该日志文件尾随到标准输出,同时等待进程完成?
问问题
1615 次
3 回答
4
tail
在等待命令完成时,使用命令跟踪文件。
command &
cmdpid=$!
tail -f -n +0 logfile &
wait $cmdpid
kill $!
这在本质上类似于威廉的解决方案,但有一个重要区别:如果command
完成所需的时间比cat
打印文件的时间长(很可能,因为cat
速度非常快),它将正确打印日志文件。该-n +0
选项告诉tail
在更新开始之前打印整个文件。
于 2012-09-10T20:26:46.833 回答
0
在后台运行 cat:
cmd-that-logs-to-file &
pid=$!
cat file &
wait $pid
kill $! # Kill the cat
于 2012-09-10T19:52:02.357 回答
0
这使它更简单:
command &
pid=$!
tail --pid=$pid -f /path/to/log
于 2017-01-12T12:29:36.003 回答