| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # 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')
|