【发布时间】:2019-12-20 09:40:42
【问题描述】:
我正在调试一个应用程序,它运行时间很长并且只生成一个日志文件作为可靠的完整输出,所以我通常使用tail -f 来监控输出。由于它还需要对环境变量进行一些特定设置,因此我将整个调用(包括 tail -f LOGFILE &)包装到了一个 bash 脚本中。
但是,这会创建一个tail 进程,该进程不会自动终止,而是会继续运行。使用trap 进行清理会导致代码复杂,一旦有多个清理任务,并且没有明显的方法来说明脚本可能终止的所有方式。
使用timeout 命令,我可以限制tail -f 在固定的总时间后终止,但这会破坏应该运行更长时间的情况。
所以我想知道,是否有办法限制tail -f 使其终止,如果跟随的文件在指定的时间内没有更改。
【问题讨论】: