'start a module on this unique client and return the corresponding job'

def run_module(self, module_name, args):

    module_name = self.pupsrv.get_module_name_from_category(module_name)
    mod = self.pupsrv.get_module(module_name)
    if (not mod):
        raise Exception(('unknown    module    %s    !' % modargs.module))
    pj = None
    modjobs = [x for x in self.pupsrv.jobs.itervalues() if ((x.pupymodules[0].get_name() == mod.get_name()) and (x.pupymodules[0].client == self))]
    if (mod.daemon and mod.unique_instance and modjobs):
        pj = modjobs[0]
    else:
        pj = PupyJob(self.pupsrv, ('%s    %s' % (module_name, args)))
        ps = mod(self, pj)
        pj.add_module(ps)
        self.pupsrv.add_job(pj)
    pj.start(args)
    return pj
