supervisor 最佳实践

本文介绍了如何使用Supervisor在不使用Docker的环境中,监控和管理Python和前台程序。主要内容包括Supervisor的安装、配置、基本操作以及解决启动时的常见问题。配置中特别提到了inet_http_server的Web后台配置和include指令,以适应内网环境。此外,还展示了如何为Python虚拟环境中的项目创建配置文件,确保程序在root权限下正确执行。
摘要由CSDN通过智能技术生成

简介

生产环境通常要求程序稳定的运行,如果程序异常退出了,希望有托管进程可以将其重新启动,而 supervisor 就可以很好的实现这个需求。

当然,docker 编排是目前更为主流的方式,但新公司不希望使用 docker,所以才选择 supervisor。

本文操作的环境:

CentOS 7
Python 3.8

安装

建议直接通过 pip 安装,如果系统中有多个 Python,那么先判断一下 pip 指向哪个 Python,命令如下:

# pip --version
pip 21.0.1 from /usr/local/python3.8/lib/python3.8/site-packages/pip (python 3.8)

可以看出,我默认的 pip 指向 Python 3.8,如果你指向的是 Python 2.7,可以使用 pip3 --version 看一下。

通过 pip 安装一下 supervisor,虽然它是 Python 开发的,但可以监控任何前台程序,这里建议使用 pip 安装(我通过 yum 安装会出现一些问题)。

# pip install supervisor

查看安装的版本。

# supervisord -v
4.2.2

基本情况

如果你通过 pip 安装,那么你的配置文件其路径跟我是一样的,位置为 /etc/supervisord.conf,配置中的含义如下:

为了阅读体验,我放在文末了

如果你没有找到对应的配置,也可以直接复制上面的内容,在对应的路径下构建一个新的配置文件,在启动时指定配置文件为当前这个文件则可。

这里,有几个需要注意的配置。

1.inet_http_server 下的配置用于配置 supervisor 可视化的 web 后台。

[inet_http_server]         ; 配置web后台
port=*:9001        ; 指定ip_address:port, 使用 *:port 监听所有 IP
;username=user              ; 默认没有用户名 (open server)
;password=123               ; 默认没有密码 (open server)

因为当前的 CentOS 服务有 IP 白名单限制,只有公司内部才能访问,所以我开启了 Web 后台方便我管理,如果是公网可访问的,不建议打开。

2.include 的配置用于指定需监控程序的配置。

[include]  
; .ini和.conf都支持
files = /etc/supervisord.d/*.ini

supervisord.conf 是 supervisor 本身的配置,我们通常将监控程序的配置放在其他位置,然后通过 supervisord.conf 的 include 配置指定对应的路径,这里将对应的配置文件放在 /etc/supervisord.d/ 路径下。

目前,我只需监控一个名为 videoocr 的 python 项目,该项目主要利用 OCR 技术识别视频中的文字内容,为了避免服务器上其他 Python 环境相互影响,该项目下使用了 python 虚拟环境,使用 venv 命令创建,命令如下:

# cd /project/videoocr
# python -m venv venv

执行时,需要使用虚拟环境中的 python 解释器去执行 python 程序。

理解了上面的内容后,我们来为 videoocr 创建相应的配置。

文末会有完整的配置示例:example.ini,里面注释了配置文件中常用字段的含义。

在对应的目录下创建相应的文件。

vim /etc/supervisord.d/videoocr.ini

配置如下:

[program:videoocr] ; videoocr 为应用名称
directory=/project/videoocr ; 执行目录
command=/project/videoocr/venv/bin/python3 main.py ; 执行命令
autostart=true ; 如果是true,当supervisor启动时,程序将会自动启动
autores
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

懒编程-二两

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值