Revision 110f49ef lib/daemon.py
b/lib/daemon.py | ||
---|---|---|
544 | 544 |
return "%s" % str(err) |
545 | 545 |
|
546 | 546 |
|
547 |
def _HandleSigHup(reopen_cb, signum, frame): # pylint: disable-msg=W0613
|
|
547 |
def _HandleSigHup(reopen_fn, signum, frame): # pylint: disable-msg=W0613
|
|
548 | 548 |
"""Handler for SIGHUP. |
549 | 549 |
|
550 |
@param reopen_cb: Callback function for reopening log files
|
|
550 |
@param reopen_fn: List of callback functions for reopening log files
|
|
551 | 551 |
|
552 | 552 |
""" |
553 |
assert callable(reopen_cb) |
|
554 | 553 |
logging.info("Reopening log files after receiving SIGHUP") |
555 |
reopen_cb() |
|
554 |
|
|
555 |
for fn in reopen_fn: |
|
556 |
if fn: |
|
557 |
fn() |
|
556 | 558 |
|
557 | 559 |
|
558 | 560 |
def GenericMain(daemon_name, optionparser, |
... | ... | |
668 | 670 |
|
669 | 671 |
if options.fork: |
670 | 672 |
utils.CloseFDs() |
671 |
wpipe = utils.Daemonize(logfile=constants.DAEMONS_LOGFILES[daemon_name]) |
|
673 |
(wpipe, stdio_reopen_fn) = \ |
|
674 |
utils.Daemonize(logfile=constants.DAEMONS_LOGFILES[daemon_name]) |
|
672 | 675 |
else: |
673 |
wpipe = None
|
|
676 |
(wpipe, stdio_reopen_fn) = (None, None)
|
|
674 | 677 |
|
675 | 678 |
log_reopen_fn = \ |
676 | 679 |
utils.SetupLogging(constants.DAEMONS_LOGFILES[daemon_name], daemon_name, |
... | ... | |
681 | 684 |
console_logging=console_logging) |
682 | 685 |
|
683 | 686 |
# Reopen log file(s) on SIGHUP |
684 |
signal.signal(signal.SIGHUP, compat.partial(_HandleSigHup, log_reopen_fn)) |
|
687 |
signal.signal(signal.SIGHUP, |
|
688 |
compat.partial(_HandleSigHup, [log_reopen_fn, stdio_reopen_fn])) |
|
685 | 689 |
|
686 | 690 |
utils.WritePidFile(utils.DaemonPidFileName(daemon_name)) |
687 | 691 |
try: |
Also available in: Unified diff