一、简介
Supervisor(Supervisor: A Process Control System)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
它是通过 fork/exec 的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程
二、安装Supervisor
2.1环境检查
因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。
1、系统平台
cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
2、Python版本
python -V
python3 -V
如果python版本低于2.6请升级,下面是python3.6.8的安装示例:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y libffi-devel
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz
tar xf Python-3.6.8.tar.xz
cd Python-3.6.8
./configure --prefix=/usr/local/python368
make && make install
echo 'export PATH=/usr/local/python368/bin:$PATH' >> /etc/profile
source /etc/profile
python3 -V
2.2安装
1、pip 安装 supervisor
使用 pip 来安装,前提要保证pip版本大于2.6
pip install supervisor
2、yum epel-release 安装 supervisor
yum install -y epel-release && yum install -y supervisor
2.3验证
supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf:
supervisortd:用于管理supervisor本身服务
supervisorctl:用于管理我们需要委托给superviso工具的服务
echo_supervisord_conf:用于生成superviso的配置文件
supervisor的守护进程服务(用于接收进程管理命令)
客户端(用于和守护进程通信,发送管理进程的指令)
# which supervisord