logrotate で copytruncate 使うなら要 O_APPEND (つまりは >>)
初めて logrotate の copytruncate を使ってみていますが、ローテートされた後のログファイルの先頭が \0 で埋められて困ったことになりました。もしかしてスパースなファイルができている…?
Bug 190468 - copytruncate not truncating (Status: CLOSED NOTABUG)
https://bugzilla.redhat.com/show_bug.cgi?id=190468
あー、どこかで見た…
正しいデバッグ用ログの吐き方 - 射撃しつつ前転
http://d.hatena.ne.jp/tkng/20090716/1247770292
問題のサーバーのログは
/some/process > log 2>&1 &
で出されたものだったのですが、具体的に O_APPEND を使うようにするには
/some/process >> log 2>&1 &
とすればよさげでした。