docs: def stop_processes(self):
          """Iterate through all of the consumer processes shutting them down."""
          self.set_state(self.STATE_SHUTTING_DOWN)
          LOGGER.info('Stopping consumer processes')
  
          signal.signal(signal.SIGABRT, signal.SIG_IGN)
          signal.signal(signal.SIGALRM, signal.SIG_IGN)
          signal.signal(signal.SIGCHLD, signal.SIG_IGN)
          signal.signal(signal.SIGPROF, signal.SIG_IGN)
          signal.setitimer(signal.ITIMER_REAL, 0, 0)
  
          # Send SIGABRT
          LOGGER.info('Sending SIGABRT to active children')
          for proc in multiprocessing.active_children():
              if int(proc.pid) != os.getpid():
                  try:
                      os.kill(int(proc.pid), signal.SIGABRT)
                  except OSError:
                      pass
  
          # Wait for them to finish up to MAX_SHUTDOWN_WAIT
          for iteration in range(0, self.MAX_SHUTDOWN_WAIT):
              processes = len(self.active_processes(False))
              if not processes:
                  break
  
              LOGGER.info('Waiting on %i active processes to shut down (%i/%i)',
                          processes, iteration, self.MAX_SHUTDOWN_WAIT)
              try:
                  time.sleep(0.5)
              except KeyboardInterrupt:
                  break
  
          if len(self.active_processes(False)):
              self.kill_processes()
  
          LOGGER.debug('All consumer processes stopped')
          self.set_state(self.STATE_STOPPED)