Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
安装supervisor
通过yum安装:
1 | [root@i-x676awuk ~]# yum install supervisor |
通过pip安装:
1 | [root@i-x676awuk ~]# pip install supervisor |
supervisor安装完成后会生成三个执行程序:
supervisortd:supervisor的守护进程服务(用于接收进程管理命令)
supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)
echo_supervisord_conf:生成初始配置文件程序
配置supervisor
运行echo_supervisord_conf程序生成supervisor的初始化配置文件:
1 | [root@i-x676awuk ~]# mkdir /etc/supervisor |
注:运行supervisord服务的时候,需要指定supervisor配置文件,如果没有显示指定,默认在以下目录查找:
1 | $CWD/supervisord.conf |
配置文件参数说明
1 | [root@vm192-168-0-5 ~]# cat /etc/supervisord.d/backend_dev.conf |
https://blog.csdn.net/xyang81/article/details/51555473
https://www.cnblogs.com/xuezhigu/p/7660203.html(详细)
配置管理进程
进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中。
1> 创建/etc/supervisor/config.d目录,用于存放进程管理的配置文件
2> 修改/etc/supervisor/supervisord.conf中的include参数,将/etc/supervisor/conf.d目录添加到include中
suppervisor 常用操作
查看、启动、停止、重启supervisor进程
启动Supervisor服务
1 | supervisord -c /etc/supervisor/supervisord.conf |
停止Supervisor服务
1 | supervisorctl stop supervisord.service |
重新启动配置中的所有程序
1 | supervisorctl reload |
更新配置后必须执行更新命令才生效
1 | supervisorctl update |
查看supervisor进程
1 | supervisorctl status |
启动某个supervisor进程
1 | supervisorctl start xxxx |
停止某个supervisor进程
1 | sudo supervisorctl stop xxxx |
停止所有supervisor进程
1 | sudo supervisorctl stop all |
重启某个supervisor进程
1 | sudo supervisorctl restart xxxx |