def restore(): """ Restore signal handlers """ global _handlers, _exit_request if _handlers: setsignal(SIGTERM, _handlers[0]) setsignal(SIGINT, _handlers[1]) _handlers = [] _exit_request = False
def setup(onexit = None): """ Replace the default signal handlers with a new one """ global _handlers if not _handlers: _handlers = [getsignal(SIGTERM), getsignal(SIGINT)] def _new_handler(*args): global _exit_request _exit_request = True if onexit is not None and callable(onexit): onexit() setsignal(SIGTERM, _new_handler) setsignal(SIGINT, _new_handler)
def setsignals(daemon): SignalTools.daemon = daemon setsignal(SIGCHLD, SignalTools.sigchild)