nginx i problemy z logrotate

Jacek Konieczny jajcus at jajcus.net
Tue Sep 7 14:36:44 CEST 2021



On 07/09/2021 12:36, Jacek Osiecki wrote:
> Odpalenie „service nginx reload” bez słowa magicznie przywraca nginxowi moc zapisywania do logów… no ale nie o to chyba chodzi :-/

Jeśli masz systemd (a dziś raczej każdy powinien mieć), to 'service 
nginx reload' woła 'systemctl reload nginx.service'

A konfig logrotate ma coś innego:

> 
> Skrypt nginx dla logrotate jest praktycznie standardowy:
> 
> /var/log/nginx/*.log {
> 	olddir /var/log/archive/nginx
> 	create 644 nginx nginx
> 	sharedscripts
> 	postrotate
> 		date >> /var/log/rotate.nginx.log
> 		/sbin/service nginx reopen-logs >> /var/log/rotate.nginx.log
> 	endscript
> }
> 
> Specjalnie dodałem to rotate.nginx.logs żeby sprawdzić czy on czegoś nie wywala… ale nie - jest tam standard:
> 
> Tue Sep  7 05:02:01 CEST 2021
> Reopening nginx logs...............................................[ DONE ]

'service nginx reopen-logs' nie ma odpowiednika systemctl, więc wołany 
jest '/etc/rc.d/init.d/nginx reopen-logs', czyli skrypt, który pewnie 
zakłada, że nginx nie był odpalany przez systemd.

Jeśli to to, to jeden ze skutków ubocznych utrzymywania na siłę skryptów 
init.d

Trzeba albo poprawić init.d/nginx, albo w konfigu logrotate zmienić 
polecenie na takie, które zadziała w obu przypadkach (init.d i systemd).

Jacek


More information about the pld-devel-pl mailing list