Имеется такой конфиг logrotate:
/var/log/nginx/*.log {
daily
missingok
rotate 10
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
Всё работает замечательно, но лог продолжает писаться в старый файл (тот, что был переименован). Например, в access.log.1, а не вновь созданный access.log. Выполняю вручную:
kill -USR1 `cat /var/run/nginx.pid`
…ошибок нет, эффекта тоже нет. Такое чувство, что kill не работает:
[root@nginx nginx]# kill -USR1 `cat /var/run/nginx.pid`
[root@nginx nginx]# ps aux | grep nginx
root 5364 0.0 0.0 75152 3712 ? Ss 13:57 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
bitrix 5365 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
bitrix 5366 0.0 0.2 77084 8688 ? S 13:57 0:00 nginx: worker process
bitrix 5367 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
bitrix 5368 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
bitrix 5369 0.0 0.2 77084 8772 ? S 13:57 0:00 nginx: worker process
bitrix 5370 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
bitrix 5371 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
bitrix 5372 0.0 0.1 77084 6964 ? S 13:57 0:00 nginx: worker process
root 5527 0.0 0.0 10692 980 pts/1 S+ 14:07 0:00 grep --color=auto nginx
Может ли это как-то быть связано с тем, что nginx работает в докер-контейнере? Как тогда правильно прибить процесс?