私が見つける:Nginxはlog-rotateで殺された後どのように再起動しますか? <code>/etc/logrotate.d/nginx</code>で
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
[ -f /var/run/nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
endscript
}
それは私は好奇心だpostrotate
コマンドです。
これは、ログが正常にローテーションされると、nginxプロセスを強制終了することを意味しています。
再起動するとわかりますnginx新しいログが作成されます。
私が解決できないことは、プロセスが自動的にどのように再開され、ウェブページの配信に何らかの障害があるかどうかです。
元のファイルに書き込むことはできません。実際にはファイルハンドルが開いている限り、ファイル名が変更されていても問題ありませんUSR1信号を使用して古いファイルを閉じて新しいログファイルを開くように指示する必要があります。 – mata
@mata、はい、あなたの説明はより詳細です:) – xiaochen
ああ。 [man](http://linux.die.net/man/1/kill)を読むと、コマンドは 'kill -s USR1 ...'でなければなりません。 '-s'をスキップする理由は何ですか? –