supervisor用于守护进程,在进程意外终止后将其重启。
supervisor没有监听内部程序和自动重启的功能。
Python-3.9.5安装
第一步,检查Linux系统是否自带Python。
命令:python --version
第二步,安装依赖包。
命令:yum -y install bzip2-devel gcc make ncurses-devel openssl-devel readline-devel sqlite-devel tk-devel zlib-devel
第三步,下载Python-3.9.5安装包。
登录Python官网:Python Source Releases | Python.org,或登录Python下载网址:https://www.python.org/downloads/release/python-395/下载Python-3.9.5中的“Gzipped source tarball”和“XZ compressed source tarball”。也可以使用wget命令下载。
命令:cd /usr/local/src
wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz
第四步,解压Python-3.9.5安装包。
命令:cd /usr/local/src
tar -xvJf Python-3.9.5.tar.xz
第五步,编译安装Python-3.9.5。
命令:cd /usr/local/src/Python-3.9.5
./configure prefix=/usr/local/Python-3.9.5
make && make install
若结果显示下图的内容,则说明Python-3.9.5编译安装成功。
第六步,配置Python环境变量。
在配置文件/etc/profile中添加下面的代码:
export PATH=$PATH:/usr/local/Python-3.9.5/bin
# 使profile配置立即生效
命令:source /etc/profile
# 查看Python版本
命令:python3.9 -V
若结果显示“Python 3.9.5”,则说明Python-3.9.5安装成功。
pip安装
第一步,检查Python3是否自带pip。
命令:pip3 --version
若结果显示“pip 9.0.3”,则说明Python3自带pip。
第二步,更新pip。
命令:sudo pip3 install --upgrade pip
若结果显示“Successfully installed pip-21.1.1”,则说明pip更新成功。
第三步,查看更新的pip版本。
命令:python3.9 -m pip -V
supervisor安装和配置
第一步,利用pip安装supervisor。
命令:pip install supervisor
若结果显示“Successfully installed supervisor-4.2.5”,则说明supervisor安装成功。
第二步,创建Supervisor配置目录。
命令:mkdir -p /etc/supervisor
mkdir -p /var/log/supervisor/test
第三步,在/etc/supervisor目录中创建主进程supervisord.conf配置文件。
命令:vim /etc/supervisor/supervisord.conf
在supervisord.conf文件中添加下面的代码:
; supervisor config file
[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)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[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
[program:test]
directory=/data/QL_pdf
command=flask run
autostart=true
autorestart=true
killasgroup=true
stopasgroup=true
stdout_logfile=/var/log/supervisor/test/stdout.log
redirect_stderr=true
supervisor启动主进程
第一步,根据supervisord.conf文件位置来启动supervisorctl。
命令:/usr/local/bin/supervisord -c /etc/supervisor/supervisord.conf
ps -ef | grep supervisor
第二步,让子进程配置文件的修改生效。
命令:supervisorctl update
第三步,重启supervisor服务。
修改环境变量之后需要重启supervisor才会生效
#重启子进程
命令:supervisorctl restart processname
#重启所有程序
命令:supervisorctl restart all
#停止子进程
命令:supervisorctl stop processname
#停止所有程序
命令:supervisorctl stop all
#启动子进程
命令:supervisorctl start processname
#启动所有
命令:supervisorctl start all
第四步,查看supervisor log。
命令:supervisorctl tail 项目名称