Supervisor的安装以及使用
1.supervisor的介绍
Supervisor 是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统,通过配置可以实现自动监听进程状态,如果被监听的进程发生异常退出,Supervisor 会尝试再次启动该进程。
2.Supervisor的安装与配置
1)因为Supervisor是Python开发的,安装前先检查一下系统否安装了Python2.4以上版本。下面以CentOS6,Python2.6版本环境下,介绍Supervisor的安装与配置步聚:参考链接为https://www.jianshu.com/p/73a14fc69e51
2)supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。
3.配置管理进程
进程管理配置参数,不建议全都写在supervisord.conf文件中,应该每个进程写一个配置文件放在include指定的目录下包含进supervisord.conf文件中。
1)创建/etc/supervisor/config.d目录,用于存放进程管理的配置文件
2)修改/etc/supervisor/supervisord.conf中的include参数,将/etc/supervisor/conf.d目录添加到include中
4.启动与关闭supervisor
supervisord -c /etc/supervisord.conf
5.订单过期监听
安装Supervisor加入订单过期监听命令
supervisor 命令说明(program_name=你配置中写的程序名称),执行命令:vi sass_snap_order_cancel.ini
6.bash终端
supervisorctl reload 更新supervisorctl.conf
supervisorctl update 更新配置需要守护配置 conf.d.ini
supervisorctl status 查看守护的进程状态
supervisorctl stop program_name 停止某一进程 显示用stop停止掉的进程,用reload或者update都不会自动重启。
supervisorctl start program_name 启动某个进程
supervisorctl restart program_name 重启某一进程
supervisorctl stop all 停止全部进程
7.安装以及使用过程中出现的问题
1)no such process
分析:安装的时候没有写config 目录,默认配置目录不是在/etc/supervisor 上的
解决办法:find / -name supervisor.sock 找到这个文件,删除(unlink)它,再执行启动命令supervisord -c /etc/supervisor/supervisord.conf
2)如果是配合在laravel框架项目中使用redis键过期通知机制的话,应注意相关配置是否开启
config/database.php中redis配置
控制台中模型文件handle方法中进行设置