supervisor是一个Python开发的通用的进程管理程序,可以管理和监控Linux上面的进程,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,但它不能管理原本就是daemon的进程。
supervisor的安装和管理都非常方便
pip install supervisor
安装好以后,需要生成一份配置文件
echo_supervisord_conf > /etc/supervisord.conf
你可以直接在/etc/supervisord.conf 里编写对任务控制的配置,更加合理的方法是在一个专门的文件夹中针对每一个进程进行配置,创建一个存储配置的目录
mkdir /etc/supervisord.d/
为每个程序编写一个配置文件,使得他们相互隔离,现在需要对/etc/supervisord.conf 进行修改以完成这个配置, 找到[include], 修改配置
[include]
files = /etc/supervisord.d/*.conf
在/etc/supervisord.d/目录下新增一个conf文件
[program:project_name]
directory = 工作目录
command = 脚本的启动命令
autostart = true
autorestart = true
user = loanward
stdout_logfile = /data/log/pro_stdout.log
supervisord -c /etc/supervisord.conf
supervisorctl 是 supervisord 的一个命令行客户端工具,使用supervisorctl可以遍历的对进程进行管理,支持的命令如下
supervisorctl status # 查看进程状态
supervisorctl stop project_name # 终止某个进程
supervisorctl start project_name # 启动某个进程
supervisorctl restart project_name # 重启某个进程
supervisorctl reread # 更新配置,根据最新的配置启动程序,会启动已经运行的程序
supervisorctl update # 更新配置,重启配置有变化的进程,不会重启那些配置没有变化的进程
QQ交流群: 211426309