Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动 重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要 管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警

安装:

Supervisor是python2写就的一款强大的运维工具(其实现在已经支持Python3了 https://github.com/Supervisor/supervisor)

那么怎么利用Supervisor监控python3程序呢

通过指令:pip3 install git+https://github.com/Supervisor/supervisor

配置文件:

# supervisor名字
[program: your_supervisor_name] #supervisor执行命令
command = uwsgi --init your_uwsgi.ini #项目目录
derectory = ...... #开始的时候等待多少秒
startsecs = 0 #停止时等待多少秒
stopawitsecs = 0 #自动开始
autorestart = true #程序挂了是否重启
autorestart = true #输出的log文件
stdout_logfile = .../log/supervisor.log #输出的错误文件
stderr_logfile = .../log/supervisor.err #把 stderr 重定向到 stdout,默认 false
redirect_stderr = true #stdout 日志文件大小,默认 50MB
stdout_logfile_maxbytes = 20M [supervisor]
# log 级别
loglevel = info

启动指令:

supervisord -c mycms_supervisor.conf

安装supervisor时,默认安装supervisord 和 supervisorctl

supervisorctl 相当于一个客户端,去管理supervisord 的进程


配置:

#使用supervisorctl配置

[inet_http_server]
#supervisor服务器
port = :9001
username = admin
password = 123 [supervisorctl]
#使用supervisorctl的登录地址和端口号
serverurl = http://127.0.0.1:9001 #登录supervisorctl的用户名和密码
username = admin
password = 123 #不定义命名空间
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

操作指令

supervisorctl 全局进入

进入单个 进程 supervisorctl -c supervisor.conf

status #查看状态

start programe_name #启动程序

restart programe_name #重启程序

stop programe_name #关闭程序

reload #重新加载配置文件

quit #退出控制台

supervisor 官网

supervisor 管理uwsgi 进程的更多相关文章

  1. 使用Supervisor管理Linux进程

    使用Supervisor管理Linux进程 简介 Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理. 安装 sudo ...

  2. celery和supervisor配合使用,实现supervisor管理celery进程

    在这里我选择redis作为celery异步任务的中间人,系统选择CentOS6.5 64位.redis.celery和supervisor的安装参见官方文档. 安装完毕后: 1, 创建celery的实 ...

  3. supervisor管理uwsgi

    1. 前言 传统的管理uwsgi服务: 1. 通过shell脚本来编写start restart stop函数来控制 2. 比较麻烦,有时候控制写的烂,还会出现意想不到的错误 supervisor进行 ...

  4. ubuntu supervisor管理uwsgi+nginx

    一.概述 superviosr是一个Linux/Unix系统上的进程监控工具,他/她upervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令 ...

  5. 使用Supervisor管理Celery进程。

    讲过一篇celery的,但是celery启动后并不是daemon的,在生产环境中这肯定是不可以的,那怎么办呢? 这就需要使用supervisor进行进程管理了,下面详细介绍. 一. superviso ...

  6. supervisor管理ELK进程

    1.配置supervisor #更新epel yum install epel-release yum install python-pip pip install supervisor -p /et ...

  7. supervisor管理进程工具配置

    Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统 ...

  8. Supervisor 管理进程,Cloud Insight 监控进程,完美!

    Supervisor 是由 Python 语言编写.基于 linux 操作系统的一款服务器管理工具,用于监控服务器的运行,发现问题能立即自动预警及自动重启等. Cloud Insight 是一款次世代 ...

  9. supervisor管理进程 superlance对进程状态报警

    supervisor介绍 首先,介绍一下supervisor.Supervisor(http://supervisord.org/)是用Python开发的一个client/server服务,是Linu ...

随机推荐

  1. GK888CN与Devexpress报表打印标签

    安装海鸥驱动,貌似打几张也会报错 使用打印机自带的gk888t驱动,用gk888t(EPL)打带二纬码时会报错 需要选择Togther, xrLable 运行 CanShrink

  2. cyclone IV中DDR的一个疑惑

    的生成的DDR2 IP中DDR的时钟竟然是双向的,而在arria10中生成的DDR4则是输出,而DDR2的datasheet上也指出ck和ck#是输入,不知为什么? inout mem_clk , i ...

  3. DDR4控制笔记

      DDR4接口 A[17:0] input 为激活命令提 供行地址,为读.写命令地址输入:提供列地址,也为模式寄存器设 置提供操作码,A[16]只用于8Gb和16Gb,A[17]只用于16Gb,另外 ...

  4. 实现1sym转换成2个sym送给CVI(VGA数据)

    CVI的时序如下 :de指示数据有效. 从下面的程序看,同步码的长度不会影响对有效数据的判断.同步码的作用更多的是用于计算行及一行的像素数目.方案一: 1 module vga_1sym_2_2sym ...

  5. tomcat部署项目访问不加项目名方法

    直接主题:tomcat部署项目访问不加项目名方法是打开tomcat的conf目录下server.xml文件 加入 <Context path="" docBase=" ...

  6. CentOS 利用Yum安装mysql后无法启动(MySQL Daemon failed to start.)

    安装mysql-server [root@iZwz9cl4i8oy1reej7o8pmZ ~]# yum install -y mysql-server 进入/etc执行mysql_install_d ...

  7. JQuery设置和去除disabled属性 与 display显示隐藏

    //两种方法设置disabled属性 $('#areaSelect').attr("disabled",true); $('#areaSelect').attr("dis ...

  8. ESP-IDF3.0

    发行版v3.0的文档可在http://esp-idf.readthedocs.io/en/v3.0/上找到. 这是自发布v3.0-rc1以来的更改列表. 如果从以前的稳定版本V2.1进行升级,请检查v ...

  9. The writing on the wall

              题意:一个n*m的方格矩阵,有的格子被涂成了黑色,问该矩阵中有多少个子矩阵,子矩阵不包含黑色格子; 思路:对于一个长为L, 高为H的无黑点矩阵中包含的高为H的子矩阵个数为L+(L- ...

  10. 验证手机格式的js代码

    function isMobil(s)         {             var patrn = /(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/;          ...