Comment Nginx redémarre-t-il après avoir été tué par log-rotate?

Dans /etc/logrotate.d/nginx je trouve:

 /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 } 

C’est la commande de postrotate je suis curieux.

Je suppose que cela signifie qu’une fois que le journal a été tourné avec succès, il tue le processus nginx .

Je sais que lors du redémarrage de nginx, le nouveau journal sera créé.

Ce que je ne peux pas faire, c’est comment le processus est automatiquement redémarré, et y a-t-il des interruptions dans le service des pages Web?

logrotate s’exécute en tant que tâche cron quotidienne et renommera les fichiers journaux dans /var/log/nginx/*.log . Après cela, nginx ne peut pas afficher le journal des erreurs ni accéder au journal des fichiers journaux d’origine. (Pour plus de détails, reportez-vous au commentaire de @mata sous cette réponse.)

Pour résoudre ce problème, le signal USR1 doit être envoyé à nginx pour rouvrir les fichiers journaux. C’est pourquoi le postrotate envoi envoie USR1 au maître nginx, ce signal ne doit pas tuer nginx.

Pour plus de détails sur le contrôle de nginx avec des signaux, voir ce document .