Python3 supervisor 操作文档

Python3 supervisor 操作文档

本文档基于Python3.9 supervisor4.2.5

supervisor初始化

# 安装    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple supervisor

# 创建服务目录
mkdir -p /etc/supervisor/supervisord.d
chmod 777 -R /etc/supervisor/

# 初始化配置文件
echo_supervisord_conf > /etc/supervisor/supervisord.conf

尝试修改如下配置

#该配置开启supervisor服务通信,web ui通信,xml-rpc通信

[unix_http_server]
file=/tmp/supervisor.sock


[inet_http_server]  
port=127.0.0.1:9001


[supervisorctl]
serverurl=http://127.0.0.1:9001

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface


[include]
files = /etc/supervisor/supervisord.d/*.ini

编写项目服务配置文件,启动服务以及项目

# vim  /etc/supervisor/supervisord.d/项目名.ini

[program:项目名]
command = 项目运行命令  # 如python3 main.py
autostart = true
autorestart = true
user = root
stdout_logfile = /etc/supervisor/logs/项目名.log

# 启动主服务  supervisord -c supervisord.conf
# 启动项目  supervisorctl start 项目名
# 查看状态  supervisorctl status

supervisor命令文档

# 启动supervisor主服务        supervisord -c supervisord.conf

# supervisor  项目服务  命令

                supervisorctl status                         # 查看进程状态
                supervisorctl stop project_name              # 终止某个进程
                supervisorctl start project_name             # 启动某个进程
                supervisorctl restart project_name           # 重启某个进程
                supervisorctl reread                         # 重新加载配置
                supervisorctl update                         # 更新配置,根据最新的配置启动程序,会启动已经运行的程序
                supervisorctl restart all                    # 重启所有服务
                supervisorctl stop all                       # 停止所有服务

python3 与supervisor进行通信

from xmlrpc.client import ServerProxy
server = ServerProxy('http://localhost:9001/RPC2')

server.supervisor.getState() # 获取supervisor服务状态
                 .getProcessInfo(name) # 获取部署服务信息
                 .getAllProcessInfo()# 获取所有部署服务信息
                 .startProcess(name) # 启动指定名称服务
                 .startAllProcesses() # 启动所有服务
                 .stopProcess(name) # 停止指定服务
                 .stopAllProcesses() #停止所有服务
                 .reloadConfig()  # 重新加载配置

猜你喜欢

转载自blog.csdn.net/qq_46273065/article/details/130802874