Supervisor配置和使用

Supervisor配置和使用

    • 一、使用背景
    • 二、工具简介
    • 三、安装
    • 四、配置文件
      • 1. 位置
      • 2. 步骤
    • 五、服务启动
    • 六、supervisorctl客户端管理
    • 七、常用操作指令
    • 八、示例
    • 九、配置项说明
      • supervisored.conf配置项说明
      • 进程任务配置项说明
    • 十、web页面监控

一、使用背景

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

进程管理配置文件目录设置,将上面创建的配置目录设置好,以后的进程配置文件都要放在这个文件夹里面
![在这里插入图片描述](https://img-blog.csdnimg.cn/a802ca3dd82f43ab81afc6f97f6efd3b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeWFud2VudGFvXw==,size_20,color_FFFFFF,t_70,g_se,x_1
supervisor.sock文件位置设置
在这里插入图片描述

supervisor.d配置项文件设置
在这里插入图片描述
supervisorctl配置项文件设置
在这里插入图片描述

五、服务启动

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

六、supervisorctl客户端管理

客户端启动

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

七、常用操作指令

指令说明
重启restart 进程名
开启start 进程名
终止stop 进程名
状态查看status
配置更新后让配置生效update
新增配置后使生效reread
任务重载reload

八、示例

编辑一个进程配置,以一个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/supervisor.log
std_logfile_maxbytes=20MB
std_logfile_backups=20

在这里插入图片描述
在这里插入图片描述

九、配置项说明

supervisored.conf配置项说明

[unix_http_server]
file=/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700 ;socket文件的mode,默认是0700
;chown=nobody:nogroup ;socket文件的owner,格式:uid:gid
;[inet_http_server] ;HTTP服务器,提供web管理界面
;port=127.0.0.1:9001 ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user ;登录管理后台的用户名
;password=123 ;登录管理后台的密码
[supervisord]
logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10 ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024 ;可以打开的文件描述符的最小值,默认 1024
minprocs=200 ;可以打开的进程数的最小值,默认 200
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord
; [program:xx]是被管理的进程配置参数,xx是进程的名称
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run ; 程序启动命令
autostart=true ; 在supervisord启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3 ; 启动失败自动重试次数,默认是3
user=tomcat ; 用哪个用户启动进程,默认是root
priority=999 ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false ;默认为false,向进程组发送kill信号,包括子进程
[include]
files = relative/directory/*.ini ;可以指定一个或多个以.ini结束的配置文件

进程任务配置项说明

[program:yourprogramname]
command=python meipaiUser.py
directory=/home/tomcat/pyscripts/recommendation/videoWebsiteCrawler/videoWebsiteCrawler
stdout_logfile=/home/tomcat/pyscripts/recommendation/videoWebsiteCrawler/meipaiuser.log
;autostart = true ; 在 supervisord 启动的时候也自动启动
;startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
;autorestart = true ; 程序异常退出后自动重启
;startretries = 3 ; 启动失败自动重试次数,默认是 3
;user = leon ; 用哪个用户启动
;redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
;stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
;stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

十、web页面监控

进入supervisored.conf配置inet_http_server选项,将注释打开,设置需要的账号密码
在这里插入图片描述
监控页面如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549942.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Mac最佳屏幕录像机:FoneLab Screen Recorder

FoneLab Screen Recorder是一款功能强大的屏幕录像机软件,它允许您在 Mac 上捕获视频、音频、在线教程等,您可以轻松自定义大小、编辑视频或音频等。如果您想录制会议、电影、电话、教程、电视节目、歌曲、快照或其他内容,FoneLab Screen Rec…

MRMC推机器人摄像机Polycam,可自动跟拍运动员

这款名为Polycam的电动相机机器人支持使用图像识别和人工智能技术来追踪运动员的动作,完全不需要人工摄像师的操作。 近日,据外媒报道,MRMC推出一款名为Polycam的电动相机机器人,其支持使用图像识别和人工智能技术来追踪运动员的…

使用Workerman做一个简单的录像直播功能

1、准备好项目 之前做过一个简单的聊天室,我是根据之前弄的聊天室改过来的。 参考:https://blog.csdn.net/qq_38231822/article/details/1128004572、大致思路 这些小东西都是自己没事捅咕玩的,随便写一写。概括来说的话就是将录像定时的转成…

livekit 简单上手教程

什么是livekit? livekit是一个开源的webrtc项目,基于pion实现了SFU架构的go程序。 它主要有以下几个特性: 可以水平扩展的sfu架构。有完整的sdk程序接口供开发人员使用。基于JWT进行身份验证,可与大部分系统进行权限集成。内置Tur…

【Supervisor】Supervisor使用教程

在项目中,经常有脚本需要常驻运行的需求。以PHP脚本为例,最简单的方式是: Copy $ nohup php cli.php & 这样能保证当前终端被关闭或者按CRTLC后,脚本仍在后台运行。但是没法保证脚本异常后自动重启等。 Supervisor 是用Py…

learnOpenGL_07_摄像机

1、 摄像机/观察空间 以摄像机的视角作为场景原点时场景中所有的顶点坐标:观察矩阵把所有的世界坐标变换为相对于摄像机位置与方向的观察坐标。要定义一个摄像机,需要它在世界空间中的位置、观察的方向、一个指向它右侧的向量以及一个指向它上方的向量。…

AWS助理架构师认证培训实操练习 | How to SSH using Windows

视频来源:B站《AWS 认证解决方案架构师 助理级 SAA-C03》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:AWS助理架构师认证培训实操练习 | 汇总_热爱编程的通信…

supervisord初体验

Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的许多进程。 安装 1.supervisord是python的一个库可以直接用过pip来进行安装 pip install supervisor2.如果没有pip可以在PyPi[https://pypi.org/project/supervisor/]上下载supervi…

AWS助理架构师认证培训实操练习 | IAM Policies Hands on

视频来源:B站《AWS 认证解决方案架构师 助理级 SAA-C03》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:AWS助理架构师认证培训实操练习 | 汇总_热爱编程的通信…

AWS助理架构师认证培训实操练习 | IAM MFA Hands On

视频来源:B站《AWS 认证解决方案架构师 助理级 SAA-C03》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:AWS助理架构师认证培训实操练习 | 汇总_热爱编程的通信…

AWS SageMaker Studio Lab免费的机器福利利用起来~

国内无法访问Google Colab,所以有时候跑Python notebook比较麻烦,得倒腾到本地,如果自己的机器(比如笔记本)性能不行的话跑起来也很痛苦 现在有了免费的羊毛,AWS SageMaker Studio Lab,国内可用…

AWS助理架构师认证培训实操练习 | IAM Roles Hands On

视频来源:B站《AWS 认证解决方案架构师 助理级 SAA-C03》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:AWS助理架构师认证培训实操练习 | 汇总_热爱编程的通信…

【笔记】MySQL行转列函数

GROUP_CONCAT()函数 创建表person_info,并插入数据 CREATE TABLE person_info (id bigint(20) NOT NULL AUTO_INCREMENT,name varchar(100) DEFAULT NULL,family varchar(100) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT8 DEFAULT CHARSETutf8;…

谷粒商城环境搭建二:开发环境统一

开发环境配置统一 Maven配置 查看maven信息 修改配置文件&#xff1a;apache-maven-3.3.9\conf\settings.xml# 配置阿里云镜像 <mirrors><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name&…

htc hd2连上wifi却显示无法连接服务器,HTC HD2线刷官方ROM疑难问题解答

HTC HD2线刷官方ROM更新实用程序 (RUU)需要注意哪些问题呢&#xff1f;安致小编在这里为大家整理这篇 《HTC HD2线刷官方ROM疑难问题解答》&#xff0c;希望对大家线刷官方RUU有所帮助。 开始准备: 运行 ROM 更新实用程序 (RUU) 前&#xff0c;请确认下列事项&#xff1a; 1.An…

提取官方原生(RUU/.exe)ROM刷机文件

官方ROM提取刷机文件结构主要为&#xff1a; android-info.txt&#xff0c;boot.img&#xff0c;hboot_*.nb0&#xff0c;radio.img&#xff0c;rcdata.img&#xff0c;recovery.img&#xff0c;splash1.nb0&#xff0c;system.img&#xff0c;userdata.img 官方(.exe)ROM提取过…

HTC One V卡刷RUU准备工作 图文教程详解

为什么80%的码农都做不了架构师&#xff1f;>>> HTC One V卡刷RUU准备工作 图文教程详解 相对于线刷&#xff0c;HTC One V卡刷RUU更为方便快捷&#xff0c;不会和普通RUU那样这么容易出错&#xff0c;不必害怕刷机中发生断电等意外事故&#xff0c;也可以重启或者…

Elasticsearch-8.x.x安装启动后测试报错[WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [DESKTOP-0QU7RUU]

浏览器输入 IP:端口号后报错。&#xff08;*默认端口号9200&#xff0c;自定义端口号在elasticsearch.yml文件里http.port: 自定义端口&#xff09; [WARN ][o.e.x.s.t.n.SecurityNetty4HttpServerTransport] [DESKTOP-0QU7RUU] received plaintext http traffic on an https c…

HTC ONE X刷ruu的详细刷机教程

一&#xff1a;准备工作&#xff1a; 1&#xff1a;手机必须能用usb数据线电脑&#xff0c;因为是线刷&#xff0c;所以必须要有数据线 2&#xff1a;检查一下电脑&#xff0c;确保电脑上已经安装htc one m7的usb驱动了 2&#xff1a;下载ruu刷机包&#xff0c;下载适合一款…

测试基础|一文了解,这5种不同类别的软件测试工具都有啥用

介绍&#xff1a;对于任何希望确保其数字产品的质量和性能的企业来说&#xff0c;软件测试工具都是宝贵的资产。从桌面应用程序到Web平台&#xff0c;软件测试工具提供了一整套功能&#xff0c;可帮助开发人员在潜在问题成为代价高昂的问题之前识别并解决它们。彻底的测试变得至…