一、简介
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界面等。