Supervisor 简介
Supervisor /ˈsuːpərvaɪzər/ 监督人,[管理] 管理人;检查员
Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台守护进程,并监控进程状态,异常退出时能自动重启。
supervisord
运行 Supervisor 时会启动一个进程 supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启。
supervisorctl
是命令行管理工具,可以用来执行 stop、start、restart 等命令,来对这些子进程进行管理。
supervisor是所有进程的父进程,管理着启动的子进展,supervisor以子进程的PID来管理子进程,当子进程异常退出时supervisor可以收到相应的信号量。
安装Supervisor
安装python包管理工具
# 必须切换到root权限,才可以安装,如果已安装,可以忽略
sudo su
yum install python-setuptools
安装方法一
easy_install supervisor
安装方法二(我的安装方式)
wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz
tar zxvf supervisor-3.1.3.tar.gz
cd supervisor-3.1.3
python setup.py install
安装过程中出现的问题
执行python setup.py install报错:
[root@qingbo supervisor-3.1.3]# python setup.py install
Traceback (most recent call last):
File "setup.py", line 32, in <module>
from setuptools import setup, find_packages
ImportError: No module named setuptools
原因:Python默认是没有安装setuptools这个模块的,这也是一个第三方模块。
解决方法:
wget https://bootstrap.pypa.io/ez_setup.py
# 这里要切换root权限才可以执行
sudo su
python ez_setup.py
之后再按照需求安装的命令:
python setup.py install
配置Supervisor
查看是否安装成功
[root@qingbo xtyunweiljms]# python
Python 2.7.13 (default, Aug 27 2019, 16:40:17)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import supervisor
>>>
我们看到没有报错,说明已经安装成功了~
注意:网上搜索的说输入
echo_supervisord_conf
命令,如果可以执行成功就说明安装成功;但是我这里貌似有问题,执行的结果如下:
[root@qingbo xtyunweiljms]# echo_supervisord_conf
bash: echo_supervisord_conf: command not found
但是不影响的supervisor的运行,待核实~
初始化配置文件
参考网上的方式有问题:
[root@solrc409 supervisor]# echo_supervisord_conf > /etc/supervisor/supervisord.conf
Traceback (most recent call last):
File "/usr/bin/echo_supervisord_conf", line 5, in <module>
from pkg_resources import load_entry_point
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 3191, in <module>
File "build/bdist.linux-x86_64/egg/pkg_resources/__init__.py", line 3175, in _call_aside
File "build/bdist.linux-x86_64/egg/pkg_resources/__init_