Supervisor使用简介

来源:互联网 发布:转子发动机 知乎 编辑:程序博客网 时间:2024/05/19 22:45

1.Supervisor简介

  Supervisor是一个 Python开发的client/server系统,可以管理和监控类 UNIX操作系统上面的进程。它可以同时启动,关闭多个进程,使用起来特别的方便。supervisor主要由两部分组成:

1supervisord(server部分

主要负责管理子进程,响应客户端命令以及日志的输出等;它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启。

2supervisorctl(client部分

命令行客户端,用户可以通过它与supervisord进程联系,获取子进程的状态等。

 

2.Supervisor的安装和使用

1)Supervisor的安装

pip install supervisor

2)Supervisord的配置生成

安装了supervisor之后,可以使用echo_supervisord_conf工具来生成supervisord的默认配置,具体方法是:

echo_supervisord_conf > supervisord.conf。然后修改supervisord.conf配置文件,添加需要让Supervisor管理的的子进程的信息,例如子进程的启动命令、是否在子进程崩溃时帮其自动重启。例如在supervisord.conf中添加一个celeryd的服务:

[program:celeryd]command=celery worker--app=task -l info ; 启动命令stdout_logfile=/var/log/supervisor/celeryd_out.log; stdout 日志输出位置stderr_logfile=/var/log/supervisor/celeryd_err.log; stderr 日志输出位置autostart=true; 在 supervisord 启动的时候自动启动autorestart=true ;程序异常退出后自动重启startsecs=10; 启动 10 秒后没有异常退出,就当作已经正常启动

3)启动Supervisord服务器进程

supervisord -c supervisord.conf

4)使用supervisorctl客户端来操作被supervisor管理的子进程

supervisorctl stop/start/restart xxx  #停止/启动/重启某一个进程xxxsupervisorctl reread  #只载入最新的配置文件, 并不重启任何进程supervisorctl reload  #载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程supervisorctl update  #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

 

学习资料参考于:

http://liuzxc.github.io/blog/supervisor/

0 0