(self, *args, **kwargs)
Trap ``SIGTERM`` and call wrapped function.
Trap ``SIGTERM`` and call wrapped function.
Trap SIGTERM and call wrapped function .
def __call__(self, *args, **kwargs):
        """Trap ``SIGTERM`` and call wrapped function."""
        self._caught_signal = None
        # Register handler for SIGTERM, then call `self.func`
        self.old_signal_handler = signal.getsignal(signal.SIGTERM)
        signal.signal(signal.SIGTERM, self.signal_handler)

        self.func(*args, **kwargs)

        # Restore old signal handler
        signal.signal(signal.SIGTERM, self.old_signal_handler)

        # Handle any signal caught during execution
        if self._caught_signal is not None:
            signum, frame = self._caught_signal
            if callable(self.old_signal_handler):
                self.old_signal_handler(signum, frame)
            elif self.old_signal_handler == signal.SIG_DFL:
                sys.exit(0)
def __call__ ( self , * args , * * kwargs ) : self . _caught_signal = None # Register handler for SIGTERM, then call `self.func` self . old_signal_handler = signal . getsignal ( signal . SIGTERM ) signal . signal ( signal . SIGTERM , self . signal_handler ) self . func ( * args , * * kwargs ) # Restore old signal handler signal . signal ( signal . SIGTERM , self . old_signal_handler ) # Handle any signal caught during execution if self . _caught_signal is not None : signum , frame = self . _caught_signal if callable ( self . old_signal_handler ) : self . old_signal_handler ( signum , frame ) elif self . old_signal_handler == signal . SIG_DFL : sys . exit ( 0 )