1

nginxとapacheの両方に、ログがローテーションされた後に送信される何らかの形式のリロード信号があることがわかります。どうしてこれなの?自分のアプリ用に設定しているので、ログが更新されずにローテーションされた場合にアプリが何らかの理由でハングするかどうかを知りたいのですが。

4

1 に答える 1

0

ここにその質問に対する素晴らしい答えがあります:ログをローテーションするときにapacheのリロードを回避する方法は?

これを行うのは、書き込み用にログファイルを開くと、ファイルハンドルを受け取るためです。ファイルを移動してもハンドルは変更されません。つまりログファイルに書き込んでいると見なされますが、ファイルを移動した後は、間違ったログファイルに書き込んでいます。そのため、ログがローテーションされたときに適切にリロードして、適切なファイルの場所に書き込んでいる新しいファイルハンドルを作成していることを確認します。

アプリで何が起こるか心配な場合は、logrotateの詳細を読み、とに特別な注意を払う必要がprerotateありpostrotateます。ログファイルがローテーションされるたびにログハンドルをリセットするシグナルをプログラムにリッスンさせるか、最初のリンクに対する答えが提案したことを実行し、ファイルをコピーして元のファイルを切り捨てて、コピーしないようにすることができます。それについて心配する必要があります。

于 2012-12-02T00:31:35.893 に答える