supervisor是用python写的一个进程管理工具,用来启动,重启,关闭进程。下面这篇文章主要给你们介绍了关于python实现的进程管理工具supervisor的安装与使用的相关资料,须要的朋友能够参考借鉴,下面来一块儿看看吧。python
前言web
在一个分布式环境中,每台机器上可能须要启动和中止多个进程,使用命令行方式一个一个手动启动和中止很是麻烦,并且查看每一个进程的状态也很不方便。若是有一个工具可以实现每台机器上多个进程的简单高效中心化管理将是很是方便的。因而Supervisord工具应运而生。与Supervisord相似的工具包括monit,daemontools和runit。下面话很少说,来一块儿看看详细的介绍吧。浏览器
安装安全
Supervisord是运行在Python环境下的服务监控程序,因此在安装supervisord以前必须有python环境。服务器
yum install python-setuptools
easy_install supervisor
若是安装成功,键入:echo_supervisord_conf
,会显示一个superviscord_conf 的配置模板。app
配置文件详解socket
[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 logfile_backups=10 ; 日志文件保留备份数量默认 10 loglevel=info ; 日志级别,默认 info,其它: debug,warn,trace pidfile=/tmp/supervisord.pid ; pid 文件 nodaemon=false ; 是否在前台启动,默认是 false,即以 daemon 的方式启动 minfds=1024 ; 能够打开的文件描述符的最小值,默认 1024 minprocs=200 ; 能够打开的进程数的最小值,默认 200 ; the below section must remain in the config file for RPC ; (supervisorctl/web interface) to work, additional interfaces may be ; added by defining them in separate rpcinterface: sections [rpcinterface:supervisor] supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface [supervisorctl] serverurl=unix:///tmp/supervisor.sock ; 经过 UNIX socket 链接 supervisord,路径与 unix_http_server 部分的 file 一致 ;serverurl=http://127.0.0.1:9001 ; 经过 HTTP 的方式链接 supervisord ; 包含其余的配置文件 [include] files = relative/directory/*.ini ; 能够是 *.conf 或 *.ini
进程Program配置分布式
[program:usercenter] directory = /home/leon/projects/usercenter ; 程序的启动目录 command = gunicorn -c gunicorn.py wsgi:app ; 启动命令,能够看出与手动在命令行启动的命令是同样的 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 会自动建立日志文件) stdout_logfile = /data/logs/usercenter_stdout.log ; 能够经过 environment 来添加须要的环境变量,一种常见的用法是修改 PYTHONPATH ; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
将进程配置添加到supervisord.conf文件中工具
推荐将各个进程配置放到单独的文件中,而后经过[include]配置项引用post
[include]
files = /etc/supervisor/*.conf
supervisor服务启动
运行命令
supervisord -c /etc/supervisord.conf
supervisor服务客户端管理
可使用supervisord的命令行客户端管理工具supervisorctl来管理进程。
supervisorctl status
supervisorctl stop usercenter
supervisorctl start usercenter
supervisorctl restart usercenter
supervisorctl reread
supervisorctl update
supervisor web管理界面
;[inet_http_server] ; HTTP 服务器,提供 web 管理界面 ;port=127.0.0.1:9001 ; Web 管理后台运行的 IP 和端口,若是开放到公网,须要注意安全性 ;username=user ; 登陆管理后台的用户名 ;password=123 ; 登陆管理后台的密码
在浏览器中输入http://127.0.0.1:9001,便可进入web管理界面
原文连接:https://www.chen-hao.com.cn/posts/6255/