GNU 手册tail
说
-s
,--sleep-interval=N
使用 时
-f
,在迭代之间休眠大约N
几秒(默认1.0
);使用inotify
和,每秒至少--pid=P
检查一次进程P
N
但是当我写的时候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
按预期睡眠(感谢斯蒂芬·查泽拉斯为了建议!)。