'Send a signal to pids for this server
:param sig: signal to send
:returns: a dict mapping pids (ints) to pid_files (paths)'

def signal_pids(self, sig, **kwargs):

    pids = {}
    for (pid_file, pid) in self.iter_pid_files(**kwargs):
        if (not pid):
            print((_('Removing    pid    file    %s    with    invalid    pid') % pid_file))
            remove_file(pid_file)
            continue
        try:
            if (sig != signal.SIG_DFL):
                print((_('Signal    %(server)s        pid:    %(pid)s        signal:    %(signal)s') % {'server': self.server, 'pid': pid, 'signal': sig}))
            safe_kill(pid, sig, ('swift-%s' % self.server))
        except InvalidPidFileException as e:
            if kwargs.get('verbose'):
                print((_('Removing    pid    file    %(pid_file)s    with    wrong    pid    %(pid)d') % {'pid_file': pid_file, 'pid': pid}))
            remove_file(pid_file)
        except OSError as e:
            if (e.errno == errno.ESRCH):
                if kwargs.get('verbose'):
                    print((_('Removing    stale    pid    file    %s') % pid_file))
                remove_file(pid_file)
            elif (e.errno == errno.EPERM):
                print((_('No    permission    to    signal    PID    %d') % pid))
        else:
            pids[pid] = pid_file
    return pids
