docs: def _kill_all_kids(self, sig):
          """
          Kill all subprocesses (and its subprocesses) that executor started.
  
          This function tries to kill all leftovers in process tree that current
          executor may have left. It uses environment variable to recognise if
          process have origin in this Executor so it does not give 100 % and
          some daemons fired by subprocess may still be running.
  
          :param int sig: signal used to stop process run by executor.
          :return: process ids (pids) of killed processes
          :rtype list
          """
          pids = processes_with_env(ENV_UUID, self._uuid)
          for pid in pids:
              log.debug("Killing process %d ...", pid)
              try:
                  os.kill(pid, sig)
              except OSError as err:
                  if err.errno in IGNORED_ERROR_CODES:
                      # the process has died before we tried to kill it.
                      pass
                  else:
                      raise
              log.debug("Killed process %d.", pid)
          return pids