Java教程

Supervisor使用历程

本文主要是介绍Supervisor使用历程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Supervisor使用历程

    • 一、使用背景
    • 二、工具简介
    • 三、安装
    • 四、配置文件
      • 1. 位置
      • 2. 步骤
    • 五、服务启动
    • 六、supervisorctl客户端管理
    • 七、常用操作指令
    • 八、示例

一、使用背景

目前在公司搭建了一套基于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文件找不到的异常,强烈建议修改位置

进程管理配置文件目录设置,将上面创建的配置目录设置好,以后的进程配置文件都要放在这个文件夹里面
在这里插入图片描述
supervisor.sock文件位置设置
在这里插入图片描述
supervisor.d配置项文件设置
在这里插入图片描述
supervisorctl配置项文件设置
在这里插入图片描述

五、服务启动

supervisord -c /etc/supervisor/supervisored.conf #注意:要以配置文件的方式开启服务
在这里插入图片描述

六、supervisorctl客户端管理

客户端启动

supervisorctl -c /etc/supervisor/supervisored.conf #注意:要以配置文件的方式启动客户端
在这里插入图片描述

七、常用操作指令

指令说明
重启restart 进程名
开启start 进程名
终止stop 进程名
状态查看status

八、示例

编辑一个进程配置,以一个flask程序为例,首先配置一个flask.conf文件到设置的conf.d文件目录
在这里插入图片描述
进程文件配置如下:

[program:flask_run]
command=/Users/ywt/.local/share/virtualenvs/owner-2UBBwPbN/bin/python server.py
user=ywt
directory=/Users/ywt/PycharmProjects/owner
autostart=false
autorestart=true
startsecs=20
startretries=3
redirect_stderr=true
stdout_logfile=/var/log/supervisor
std_logfile_maxbytes=20MB
std_logfile_backups=20

在这里插入图片描述

这篇关于Supervisor使用历程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!