Supervisor的使用
介绍
Supervisor是一个C/S进程管理系统,它允许用户对类UNIX系统上的进程进行监控(也就是Superviosr不支持windows)。
各个组件
- supervisord主进程
负责管理进程的server,它会根据配置文件创建指定数量的应用程序的子进程,管理子进程的整个生命周期,对crash的进程重启,对进程变化发送事件通知等。同时内置web server和XML-RPC Interface,轻松实现进程管理。该服务的配置文件在/etc/supervisor/supervisord.conf。
- supervisorctl 客户端的命令行工具
提供一个类似shell的操作接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序,命令通过UNIX socket或者TCP来和服务通讯。用户通过命令行发送消息给supervisord,可以查看进程状态,加载配置文件,启停进程,查看进程标准输出和错误输出,远程操作等。服务端也可以要求客户端提供身份验证之后才能进行操作。
- Web Server
supervisor提供了web server功能,可通过web控制进程(需要设置[inethttpserver]配置项)。
安装
pip install supervisor
配置及使用
通过命令可以获得官方的模板配置文件
echo_supervisord_conf > supervisor_sample.conf
文件中都有详细的注释,然后我根据这个做了一个简单的demo测试,github源码
- 启动supervisor
supervisord -c supervisor_demo.conf
然后访问http://127.0.0.1:9001/ (以配置文件中的为准),可以看到如下所示:
然后可以看到程序已经执行,这里可以看到日志信息:
- 重新加载配置启动
如果srver配置了用户密码,注意要执行命令时要写上,否则会执行失败
supervisorctl -u user -p 123 reload