util: reopen server logs on SIGUSR1 for external log rotation 27/11727/14
authorMichael Meffie <mmeffie@sinenomine.net>
Fri, 6 Feb 2015 15:56:43 +0000 (10:56 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Tue, 26 Apr 2016 00:09:12 +0000 (20:09 -0400)
commit79c8b36e11073c40fde2918ae9ee80cc5c3b8efe
treea148dc5afcdeed6c14e0b8e27ce65643d2985aab
parent5892473c2381b40a2be375a1b04ddae080711e12
util: reopen server logs on SIGUSR1 for external log rotation

Claim the SIGUSR1 signal for reopening server log files.  A server
process will reopen the log file when the SIGUSR1 signal is received.
If the log file does not exist, the server process will create a new,
empty log file.

This allows external log rotation programs to rotate log files by
renaming an existing log file then sending a SIGUSR1 signal to the
corresponding server process.  Any messages written to the log after the
log file was renamed but before the SIGUSR1 signal is received will
continue to be written to the renamed log file.  The server process will
write messages to the new log file after handling the SIGUSR1 signal.

The SIGUSR1 signal is used to reopen the log file instead of the more
commonly used SIGHUP signal, since SIGHUP is already used for resetting
the logging level.

The retirement of Linux 2.4 support, in particular the desupport of
LinuxThreads, in commit ccf353ede6ef5cce7c562993d1bea0d20844bdb7 allows
for the use of SIGUSR1 in OpenAFS.

Change-Id: Ie3ff52ae4986eae30c7420b5f05ff1eacdfe7596
Reviewed-on: https://gerrit.openafs.org/11727
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
src/util/serverLog.c