回答:
Roryが説明したように、logrotateからの信号を受け入れないアプリケーションでは、いくつかの方法を使用します。
どちらを使用するかの決定は、ログファイルのサイズとシームレスログの必要性の両方に依存します。それはあなた自身のリスク分析になります。ただし、例を挙げると、実際にcopytruncateを使用する必要がある特定のログで、回転後の再起動を使用します。ただし、ファイルは複数のギグであることが多く、コピーには十分な時間がかかるため、毎晩1〜2秒は失われることが望ましいでしょう。
私は次のものが欲しいかもしれませんが、それでもトピックに関する誰の専門知識にも興味があります:
copytruncate
Truncate the original log file to zero size in place after cre‐
ating a copy, instead of moving the old log file and optionally
creating a new one.
logrotateは、プロセスに正しい信号を送信して、ログファイルを再度開くように指示します。apacheやmysqlのようなものをそのまま使用できます。
これは、Apacheのpostrotateスクリプトで確認できます。独自のデーモンがあり、logrotateを使用したい場合は、特定のシグナルをリッスンし、ログファイルを再度開くようにしてください。
プログラムを変更できない場合は、デーモンにログを自動的にフラッシュする方法があるかどうかを確認できます。または、サーバーを停止するprerotateと、サーバーを再起動するpostrotateを追加します。