+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

Python进程管理工具Supervisor使用指南

Supervisor 是一个用 Python 开发的客户端/服务器系统,用于管理和监控类 UNIX 操作系统上的进程。它提供了便捷的方法来启动、重启和关闭进程。 一,安装 supervisor 以Debian系统为例。 1,安装 supervisor apt-get install supervisor 2,安装完成后查看 supervisor 是否在运行 ps aux | grep supervisord 正常运行的输出结果如下: root 13878 0.1 0.6 31760 24712 ? Ss 12:46 0:00 /usr/bin/python3 /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf root 13971 0.0 0.0 6240 648 pts/0 S+ 12:49 0:00 grep supervisord 3,设置为开机自启 systemctl enable supervisor 4,启动 supervisor supervisorctl start all 启动 supervisor 前建议先查看 supervisor 的运行情况 5,进入 supervisor 进程管理界面 sudo supervisorctl 二,supervisor配置 安装完成后,supervisor 的配置地址为 /etc/supervisor/supervisord.conf。 不同系统的配置文件地址略有不同。 配置文件内容如下(无需修改) [unix_http_server] file=/var/run/supervisor.sock ; (the path to the socket file) chmod=0700 ; sockef file mode (default 0700) [supervisord] logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log) pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid) childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP) [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket [include] files = /etc/supervisor/conf.d/*.conf Python应用的配置文件参考(以Flask项目 hello 为例): [program:hello] command=/opt/www/hello/venv/bin/gunicorn -w4 -b 0.0.0.0:8011 app:app ;supervisor启动命令 directory=/opt/www/hello ; 项目的文件夹路径 startsecs=0 ; 启动时间 stopwaitsecs=0 ; 终止等待时间 autostart=true ; 是否自动启动 autorestart=true ; 是否自动重启 stdout_logfile=/opt/logs/www/hello/gunicorn.log ; log 日志 stderr_logfile=/opt/logs/www/hello/gunicorn.error ; 错误日志 三,服务管理 1,查看服务状态 # 查看服务状态 supervisorctl status #进程管理常用命令 systemctl stop supervisord systemctl start supervisord systemctl restart supervisord 2,项目管理 当有新项目加入时,需要刷新服务列表 2.1 reload 命令 如果不指定子服务名称,默认重新启动所有的子服务列表。指定子服务名,仅仅重启当前子服务,其它服务不受影响。 所有子服务是指不管配置是否发生修改,都会重启。 # 刷新服务列表 supervisorctl reload 2.2 update 命令 重启所有配置发生更改的子服务(包含新增子服务),配置未发生变化的子服务不重启。 有新项目加入时,建议使用 update 命令 # 刷新服务列表 supervisorctl update 3,进程管理 3.1,进入 supervisor 管理界面 sudo supervisorctl 3.2 管理命令 # 启动指定服务 supervisorctl start program_name # 停止指定服务 supervisorctl stop program_name # 重启指定服务 supervisorctl restart program_name # 启动所有服务 supervisorctl start all # 停止所有服务 supervisorctl stop all
我的笔记