# coding:utf-8 import os.path from xmlrpc.client import ServerProxy class SupervisordUtils: def __init__(self): url = "http://yunfei_yanfabu:yanfabu6021@127.0.0.1:59001/RPC2" self.server = ServerProxy(url) self.supervisor = self.server.supervisor def is_exists(self, name): exists = True try: self.supervisor.getProcessInfo(name) except Exception as e: exists = False return exists def list(self, name): result = [] for info in self.supervisor.getAllProcessInfo(): if name and (name not in info['name']): continue result.append(info) return result def stop(self, name): try: info = self.supervisor.getProcessInfo(name) statename = info['statename'] if statename == 'RUNNING': self.supervisor.stopProcess(name) except Exception as e: pass def restart(self, name): self.stop(name) self.supervisor.removeProcessGroup(name) self.supervisor.reloadConfig() self.supervisor.addProcessGroup(name) def remove(self, name): self.stop(name) self.supervisor.removeProcessGroup(name) path = '/data/supervisor/config.d' file_path = os.path.join(path, name) if os.path.isfile(file_path): os.remove(file_path) if __name__ == '__main__': su = SupervisordUtils() print(su.list()) su.restart('本地测试_test2') # su.restart('本地测试_test2')