私たちはUbuntuサーバーでサービスを管理するためにupstartを使用しています。/var/log/upstart/SERVICE_NAME.logにログアウトされるログを生成します
その後、毎日、ログファイルは12.04 LTSに付属するlogrotationスクリプトを使用してローテーションされます。
/var/log/upstart/*.log {
daily
missingok
rotate 7
compress
notifempty
nocreate
}
問題は、logrotateがファイルを移動している間、upstartがファイルを閉じて再度開くように通知せず、upstartプロセスが削除PIDに書き込んでいることです。
init 1 root 8w REG 202,1 64 2431 /var/log/upstart/dbus.log.1 (deleted)
init 1 root 13w REG 202,1 95 2507 /var/log/upstart/acpid.log.1 (deleted)
init 1 root 14w REG 202,1 127 17377 /var/log/upstart/whoopsie.log.1 (deleted)
init 1 root 36w REG 202,1 122 6747 /var/log/upstart/SERVICE_NAME.log.1 (deleted)
init 1 root 37w REG 202,1 30 6762
当然、自分のサービスからの出力を他のログファイルにリダイレクトすることもできますが、システムプロセスの問題は依然として存在します。また、必要以上のインフラストラクチャを構築する必要はありません。
nocreate
ディレクティブのため、なぜ誰もがこのディレクティブを使用する理由が