supervisor是用Python开发的一套通用的进程管理程序,可以方便的监听、启动、停止、重启一个或多个进程。能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启,方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
supervisor的组件
- supervisord
服务器主进程名为supervisord。它负责自行调用启动子程序,响应来自客户端的命令,重新启动崩溃或退出的子进程,记录其子进程stdout和stderr 输出以及生成和处理与子进程子进程生存期中的点相对应的“事件”。
- supervisorctl
主进程的命令行客户端部分名为 supervisorctl。它为supervisord提供的功能提供了类似shell的界面。从 supervisorctl,用户可以连接到不同的 supervisord进程(一次一个),获取由子进程控制的状态,停止和启动子进程,并获取运行的进程的列表supervisord。
- Web Server
如果针对internet套接字启动了adminord,那么可以通过浏览器访问具有与supervise orctl类似功能的(稀疏的)web用户界面。在激活配置文件的[inet_http_server]部分后,访问服务器URL(例如http://localhost:9001/以通过web界面查看和控制进程状态。
- XML-RPC Interface
服务于web UI的同一个HTTP服务器提供一个XML-RPC接口,该接口可用于询问和控制管理器及其运行的程序。
旗鱼云梯提供了supervisor管理器,通过supervisor用户可以自定义后台守护进程,并进行启动、停止、重启等管理操作,支持任务开机自启。