def master(queue, rep_queue, outputs): from multiprocessing import Process import logging from settings import add_fab_to_env_path logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(levelname)s - %(message)s', datefmt='%d/%m/%Y %H:%M:%S', filename="master.log" ) logging.info("<master up!>") add_fab_to_env_path() workers = [] while True: try: (cmd,) = queue.get() except: break logging.debug("master rcv cmd : %s" % cmd) workers = [w for w in workers if w.is_alive()] # gc ? if cmd == "l": rep = [(w.pid, w.cmd) for w in workers] else: w = Process(target=run_command, args=[cmd, outputs]) w.cmd = cmd w.start() workers.append(w) rep = w.pid rep_queue.put(rep) logging.info("<master down!>")