您的位置:

Pythonsupervisor——Python程序监控与管理工具

一、简介

Pythonsupervisor是一款用于监控、管理、重启和停止Python程序的工具,它是由Supervisor的Python API和命令行界面构成。

二、安装与配置

在Linux系统下,可以通过Pip安装supervisor:

pip install supervisor

安装完成后在终端中输入“echo_supervisord_conf”可以生成默认的supervisord.conf文件,也可以自行创建supervisord.conf文件。

supervisord.conf文件必须包含以下内容:

  • inet_http_server:程序状态Web服务器,用于在Web上查看状态信息和管理。
  • [supervisord]:supervisor全局配置,用于配置日志、UMASK、进程优先级等。
    [unix_http_server]
    file=/var/run/supervisor.sock   ; Unix socket 文件,supervisorctl 会使用
    chmod=0700                       ; socket 文件的 mode,默认是 0700
    
    [inet_http_server]        ; supervisord 运行的服务器,可以用来查看状态,提交命令等
    port=127.0.0.1:9001      ; Web界面管理端口号和IP,如果开放给外网使用,需要注意安全问题
    username=user            ; 登录管理界面的用户名
    password=pass            ; 登录管理界面的密码
    
    [supervisord]
    
    logfile=/var/log/supervisord.log ; 日志文件,默认是 $CWD/supervisord.log,需要注意权限问题
    logfile_maxbytes=50MB            ; 日志文件大小,超出会轮转,可以写成 1000MB=1GB
    logfile_backups=10               ; 日志文件保留备份数量
    
    loglevel=info                    ; 日志级别,默认 info,其它: debug,warn,trace
    pidfile=/var/run/supervisord.pid ; pid 文件位置
    nodaemon=false                   ; 是否在前台启动,默认是 false,即以 daemon 的方式启动进程
    minfds=1024                      ; 可以打开的文件描述符的最小值,默认 1024
    minprocs=200                     ; 可以打开的进程数的限制,默认 200
    
    [supervisorctl]
    serverurl=unix:///var/run/supervisor.sock ; 通过 unix socket 与 supervisord 通信
    username=user                            ; 如果 supervisord 配置了用户名和密码,这里要填上
    password=pass                            ; 如果 supervisord 配置了用户名和密码,这里要填上
    
  • program:需要管理的Python程序进程,用于配置程序运行方式、命令等,也可以在管理界面中查看和操作。

三、使用

在有supervisord.conf文件的目录下,使用“supervisord”命令即可启动supervisord进程。

supervisord

启动后,可以使用“supervisorctl”命令进入supervisorctl控制台。

supervisorctl

在控制台中,可以进行如下操作:

  • 启动所有程序:start all
  • 停止所有程序:stop all
  • 重启所有程序:restart all
  • 启动指定程序:start program_name
  • 停止指定程序:stop program_name
  • 重启指定程序:restart program_name

四、附加功能

supervisor还提供了很多额外的功能,如:

  • 自动启动:可以将supervisord设置成开机自启动。
  • 邮件通知:可以配置邮件接口,当程序状态发生变化时,会发邮件通知。
  • 进程日志:可以将进程的输出信息记录在日志文件中。
  • Web界面:可以通过Web用户界面,方便地查看程序状态、日志信息等。

五、总结

Pythonsupervisor是一款Python程序监控与管理工具,能够方便地对Python程序进行监控和管理,同时提供了很多扩展功能,如自动启动、邮件通知、进程日志和Web界面等。