In /etc/logrotate.d/nginx
Ich finde:Wie startet Nginx neu, nachdem es durch log-rotate gelöscht wurde?
/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
}
Es ist der postrotate
Befehl über Ich bin gespannt.
Ich nehme an, dass, sobald das Protokoll erfolgreich gedreht wurde, es den nginx Prozess tötet.
Ich weiß beim Neustart nginx das neue Protokoll erstellt wird.
Was ich nicht herausfinden kann ist, wie wird der Prozess automatisch neu gestartet, und gibt es eine Unterbrechung der Bereitstellung von Webseiten?
Es ist nicht so, dass es nicht mehr in die Originaldatei schreiben kann, in der Tat würde es weiterhin so tun, solange es noch eine offene Datei hat, ist es egal, dass die Datei umbenannt wurde, deshalb Es muss gesagt werden, dass das alte geschlossen und eine neue Protokolldatei mit dem USR1-Signal geöffnet werden soll. – mata
@mata, ja, deine Beschreibung ist detaillierter :) – xiaochen
Ah. Wenn man den [man] (http://linux.die.net/man/1/kill) liest, sollte der Befehl 'kill -s USR1 ...' sein. Warum wird das '-s' übersprungen? –