Supervisor XML-RPC的使用

簡單記錄一下通過調用Supervisor的XML-RPC API接口,實現對Supervisor的操作。

supervisor的安裝與使用可以參考之前的文章Gunicorn+Supervisor部署Flask

首先需要查看一下目標機器的supervisor.conf配置文件,找到用戶名、密碼和端口號

API使用很簡單,通過python3自帶的xmlrpc模塊即可連接並執行相關的命令。全部命令可以參考官網http://supervisord.org/api.html#system-methods

結合notes這個子進程實例,簡單說下常見的一些命令。

from xmlrpc.client import ServerProxy

if __name__ == '__main__':
  server = ServerProxy("http://user:123@localhost:9001/RPC2")
  # 查看基本信息
  print(server.supervisor.getProcessInfo("notes"))
  print(server.supervisor.getAllProcessInfo())
  # start
  print(server.supervisor.startProcess("notes"))
  # 更新配置文件後如何生效
  print(server.supervisor.stopProcess("notes"))
  print(server.supervisor.removeProcessGroup("notes"))
  print(server.supervisor.reloadConfig())
  print(server.supervisor.addProcessGroup("notes"))
  # 查看日誌
  print(server.supervisor.readProcessStderrLog("notes",0,2048))
  print(server.supervisor.tailProcessStderrLog("notes",0,512))
  • getProcessInfo("notes") 展示"notes"子進程的基本信息

  • startProcess("notes") 啓動"notes"子進程

stopProcess("notes"))
removeProcessGroup("notes"))
reloadConfig())
addProcessGroup("notes"))

這一組操作可以實現更新子進程的配置文件,如何生效的問題。需要首先關掉子進程並移除,其次重新加載配置文件,最後再加載。

  • tailProcessStderrLog("notes",0,512)) tail子進程的日誌
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章