Commit report for v3.1.x branch - logrotate

Matthew Newton mcn4 at leicester.ac.uk
Fri Sep 18 00:29:34 CEST 2015


On Fri, Sep 18, 2015 at 12:00:02AM +0200, The git bot wrote:
> ======
> Revert "logrotate: send a HUP after rotation"
> 
> This is wrong, copyrotate is the correct command to use
...
> https://github.com/FreeRADIUS/freeradius-server/commit/e82215bd77c43a33c57e5f17fb404ec32f05263f

That method can lose log data, and really a hack for programs that
can't close and reopen their own log files.

The right way is to move the logfile, then signal the daemon to
reopen its logfile, which is what the original version did.

But the question really is how to signal. "killall -HUP radiusd"
is verging on wrong (a variant of kill -HUP `cat $PIDFILE` would
be more correct). I suspect /etc/init.d/freeradius reload is
trying to do the latter, but is a) deprecated (it should be
something like service freeradius reload) and b) possibly won't
play well with systemd, however much any of us may hate it.

The example in logrotate.conf(5) is

  postrotate
    kill -HUP `cat /var/run/inn.pid`
  endscript

which would be best IMO - it doesn't play with init scripts or
touch anything systemd related, is not as drastic as killall, and
has no race.

Cheers,

Matthew


-- 
Matthew Newton, Ph.D. <mcn4 at le.ac.uk>

Systems Specialist, Infrastructure Services,
I.T. Services, University of Leicester, Leicester LE1 7RH, United Kingdom

For IT help contact helpdesk extn. 2253, <ithelp at le.ac.uk>


More information about the Freeradius-Devel mailing list