1.supervisor工具
基于python的进程管理工具,server端是supervisord,client端是supervisorctl命令
当应用服务器要部署多个服务程序,机器关闭,重启的批量维护。此时supervisor是一个不错的
选择。supervisor可以同时启动所以应用程序而不用逐个启动。
Supervisor的功能如下:
1 启动、重启、关闭包括但不限于python进程。
2 查看进程的运行状态。
3 批量维护多个进程。
2.安装
安装好supervisor之后默认是没有生成配置文件的,可以通过命令生成配置文件。
supervisor组件
1.supervisord是supervisor的服务端程序。
作用:启动supervisor程序自身,启动supervisor管理的子进程,响应来自clients的请求,
重启闪退或异常推出的子进程,把子进程的错误和输出记录到日志文件中,生成和处理Event。
2.supervisorctl是supervisor的client端
supervisorctl有一个类型shell的命令行界面,可以利用它来查看子进程的状态,启动/停止。重启
子进程,获取running子进程的列表等等。。。
而且supervisorctl不仅可以连接到本机上的supervisord,还可以连接远程的supervisord,在
本机上是通过UNIX socket连接的,远程是通过tcp socket连接的。supervisorctl和supervisord
之间的通信,是同过xml_rpc完成的。相应的配置在[supervisorctl]块里面。
配置
1.测试是否安装成功
echo_supervisord_conf
2.生成配置文件
echo_supervisord_conf > /etc/puservisord.conf(一般放在/etc/下面)
3.打开配置文件:vim /etc/puservisord.conf
4.在配置文件底部,配置include
[include]
files=/etc/puservisor/*.conf
3.supervisorctl命令
1.启动:
supervisod -c /etc/supervisord.conf(如果不指定配置文件启动,则会从当前位置开始查找)
supervisod
2.查看supervisord是否运行:
ps aux | grep supervisord
3.修改完配置之后需要重启supervisor
supervisorctl reload
4.查看supervisor监管的进程状态
supervisorctl status
5.启动XXX进程
supervisorctl start xxxxx
6.停止XXXX进程
supervisorctl stop xxxxx
7.停止全部的进程
supervisorctl stop all
注意:start, restart, stop都不会载入最新的配置文件
8.根据最新的配置文件,启动新配置或者有改动的进程,配置没有变化的进程不会受影响而重启
supervisorctl update