tail -f コマンドを使うとファイルの削除で動作が止まる。
tail -f /path/to/log
で ログファイルを見ているときに、別のプロセスでファイルが消えたら
ファイルが消えたら、動作が止まる。
mv /path/to/log /dev/null rm /path/to/log
echo hello > /path/to/log
これはファイルディスクリプタだけを見ているので、ファイルが消えるとログを追尾できない
-F / –follow=name を使う
tail -F /path/to/log tail --follow=name a.log
これでパス名のファイルの有無などを監視してくれるようになる。
tail -f は inotify や fsevent を見てると思うので、基本的には -F で良い気がする。
man tail
-f, --follow[={name|descriptor}] output appended data as the file grows; an absent option argument means 'descriptor' -F same as --follow=name --retry
inotify を見てる話はman にそう書いてる。
-s, --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations; with inotify and --pid=P, check process P at least once every N seconds