def execute(old_progs): logger.log("taskmaster reloaded") new_progs = ProgramLst() for oprog in old_progs.lst: for nprog in new_progs.lst: # only program which we care about processes should be keep if oprog.name == nprog.name: oprog.keep_running_process(nprog) break # now all the progs are in new_progs new_progs.reload() return new_progs
prog_name = CommandInterface.get_prog_name(line) restart.execute(progs, prog_name) progs_lock.release() def complete_restart(self, text, line, begidx, endidx): return CommandInterface.prog_complete(self, text, line, begidx, endidx) def do_reload(self, line): global progs progs_lock.acquire(True) progs = reload.execute(progs) progs_lock.release() if __name__ == '__main__': logger.log("BEGIN TASKMASTER") # create signal handler signal.signal(signal.SIGINT, signal_handler) # read progs progs = ProgramLst() progs.launch() progs_lock = threading.Lock() # launch a thread to test progs t = threading.Thread(target = thread_check_progs) t.daemon = True t.start() # command loop CommandInterface().cmdloop()