Python—守护进程管理工具(Supervisor),


一、前言简介

1、Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程。可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。

2、Supervisor 安装完成之后,可以编写配置文件,来满足自己的需求。为了方便,我们把配置分成两部分:supervisord(这是 server 端,对应的有 client 端:supervisorctl)和应用程序(即我们要管理的程序)。

  • supervisord(server 部分):主要负责管理子进程,响应客户端命令以及日志的输出等,受控的监听进程都会以其子进程地方式出现,不过如果supervisord的主进程非正常退出时,被管理的进程仍然是运行状态。
  • supervisorctl(client 部分):命令行客户端,用户可以通过它与不同的 supervisord 进程联系,获取子进程的状态等。

3、Supervisord 要求管理的程序是非daemon程序,supervisord 会帮你把它转成daemon程序,因此如果用supervisord来管理nginx的话,必须在nginx的配置文件里添加一行设置daemon off让nginx以非daemon方式启动,当然了,redis等亦如是。 

二、安装supervisor

1、安装supervisor

[root@localhost ~]# pip install supervisor

2、测试supervisor安装是否成功

[root@localhost ~]# echo_supervisord_conf

3、卸载supervisor

[root@localhost ~]# pip uninstall supervisor

supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf。分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

三、配置supervisord

安装 supervisor 完成之后,可以编写配置文件,来满足自己的需求。为了方便,我们把配置分成两部分:supervisord(这是 server 端,对应的 client 端:supervisorctl)和应用程序(即我们要管理的程序)。首先来看 supervisord 的配置文件。

1、通过运行 echo_supervisord_conf 命令生成 supervisor 的初始化配置文件:supervisord.conf(supervisord.conf文件的位置无所谓,这里当作第二个位置)

[root@localhost ~]# echo_supervisord_conf > /etc/supervisord.conf
[root@localhost ~]# echo_supervisord_conf > /etc/supervisor/supervisord.conf

2、启动 supervisord 服务(通过 -c 选项指定配置文件路径,如果不指定会按照这个顺序查找配置文件:$CWD/supervisord.conf,  $CWD/etc/supervisord.conf,  /etc/supervisord.conf):

[root@localhost ~]# supervisord -c /etc/supervisord.conf                        
[root@localhost ~]# supervisord -c /etc/supervisor/supervisord.conf

3、查看 supervisord 服务是否在运行:

[root@localhost ~]# ps aux | grep supervisord

4、查看 supervisord 服务是否生效

[root@localhost ~]# ps -ef | grep ProjectName

  

相关内容

    暂无相关文章

评论关闭