Supervisor配置和使用
一、使用背景
目前在公司搭建了一套基于Django的管理后台,同时使用了celery做了调度部分爬虫任务的定时调度,由于涉及到起到的进程指令过多,需要个工具来统一管理配置,找了半天…最后找了相对较火热的Supervisor(其实最开始使用的是docker,基于docker-compose本地都调测好了,但是公司服务器对容器管控严格,镜像源申请一眼难尽…)
二、工具简介
supervisor作用是对运行在类Linux系统上的指定进程进行管理,由python编写,可以理解是一个平台工具,不是一个简单的类库。支持像docker一样的对运行的程序启动、终止,重启等操作,也支持对进程运行的稳定性有很大的帮助,可以自动对异常终止的程序自动启动。
三、安装
找到两种相对简单的安装方式(本人比较懒…)
第一种是Mac带的brew安装
brew install supervisor
第二种是pip安装
pip install supervisor
四、配置文件
1. 位置
配置文件位置一般会在你pip的的安装目录下,一下是我电脑的位置
如果找不到自己的pip位置还有只简单的方法
2. 步骤
设置supervisor配置目录
mkdir -p /etc/supervisor/conf.d
cd到安装目录,执行命令,生成配置文件
./echo_supervisord_conf > /etc/supervisor/conf.d/supervisored.conf
supervisored.conf配置文件修改
配置项有点多但是实际配置内容不多,需要注意的是网上有许多教程只设置了图一的配置,也能运行,但是由于后面几个文件路径配置morning的设置为/tmp临时文件目录,这个目录容易被删除,导致后面在启动时容易出现pid文件,sock文件找不到的异常,强烈建议修改位置
进程管理配置文件目录设置,将上面创建的配置目录设置好,以后的进程配置文件都要放在这个文件夹里面

; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
十、web页面监控
进入supervisored.conf配置inet_http_server选项,将注释打开,设置需要的账号密码
监控页面如下: