“tail -s N”更新前不会休眠N秒

“tail -s N”更新前不会休眠N秒

GNU 手册tail

-s,--sleep-interval=N

使用 时-f,在迭代之间休眠大约N几秒(默认1.0);使用inotify和,每秒至少--pid=P检查一次进程PN

但是当我写的时候tail --sleep-interval=10 -F file_name 它不会休眠10秒,它会立即更新。是我理解错了,还是使用错了?

感谢您的帮助

答案1

完整手册描述-s

更改迭代之间等待的秒数(默认值为 1.0)。在一次迭代期间,将检查每个指定的文件以查看其大小是否已更改。当tail使用 inotify 时,这个与轮询相关的选项通常被忽略。但是,如果您还指定--pid=p,则 tail 会检查进程是否p至少每一次都还活着数字秒。这数字必须为非负数,并且可以是当前语言环境或 C 语言环境中的浮点数。看浮点

您的系统可能具有 inotify 功能,因此tail将使用它而不是轮询,并且由于您没有跟踪 pid,因此-s选项无效。您可以禁用 inotify无证件者---disable-inotify选项(和破折号),这将导致tail按预期睡眠(感谢斯蒂芬·查泽拉斯为了建议!)。

相关内容