Execute _drain while trapping KeyboardInterrupt

def drain(self, cycles=None):
        """Execute _drain while trapping KeyboardInterrupt"""
        if not self._check_service_requirements():
            self.init_timer.stop()
            return self.finish()

        if self.anybar: self.anybar.change("orange")
        self.init_timer.stop()
        log.info("Trapping CTRL+C and starting to drain.")
        signal.signal(signal.SIGINT, self._handle_ctrl_c)
        with ignored(KeyboardInterrupt):
            return self._drain(cycles)