2010/09/16
tailのトリビア
WEB+DBプレスにtailfコマンドの紹介がありました。
tailfはtail -fと同じことをしますが、ポーリング的な動作をしないので効率が良いと書いてありました。tailfは次のutil-linux-ngに含まれています。
どうやっているのかと思いtailfのソースを見たらinotifyを使っていました。inotifyでファイル変更イベントを受けるとファイルサイズを確認します。以前とサイズが変わっていれば処理します。inotifyが使えない場合は、少しsleepしてチェックを繰り返す無限ループで処理します(古典的tail -f)。
これはトリビアと思ったのですが、本家のGNU core utilitiesのtailのソースを見てみるとこちらもinotifyを使っていました。2009年8月にリリースされたたv7.5で対応したようです。
そんなわけで正しいトリビアは「tailfはinotifyを使いtail -fを効率化したが、新しいGNU tailもinotifyに対応している」です。
- Category(s)
- カテゴリなし
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/inoue/tailf/tbping