【发布时间】:2015-09-15 03:34:53
【问题描述】:
如果我运行这样一个 bash 脚本,并且在脚本中,它会调用一些可执行的命令,比如下面的
myexec args1 arg2 > out.txt
myexec 将通过 c API printf 打印一些日志信息。如果我中断脚本,因为myexec被一些未知的原因卡住了,是否会丢失一些日志信息,而不是保存到out.txt文件中?在我的实验中,我发现它是,但有没有办法解决这个问题?而且我不知道为什么日志信息没有刷新到 out.txt 文件中
========
我用stdbuf解决了我的问题,相关问题是:Force line-buffering of stdout when piping to tee
【问题讨论】:
-
很大程度上取决于很多因素,例如缓冲区大小、刷新频率、访问 printf 的方式,最重要的是您的程序,显示代码。
-
是的,我知道,但我没有源代码。我真的很想知道在我中断日志时是否可以有方法来捕获日志。比如我把上面的代码包装在python fabric命令中。当我中断执行时,出现异常,我使用了一个尝试...最后将所有日志信息刷新到文件中。