安装
# 如果没有 easy_install 需要安装 python-setuptools
$ yum install python-setuptools
$ easy_install supervisor
#查看python-setuptools有什么安装
rpm -qa | grep python-setuptools //yum方式安装的查看方法
supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。
配置:
# 设置默认配置
$ echo_supervisord_conf > /etc/supervisord.conf
$ vim /etc/supervisord.conf
#将此项加入末尾,supervisor 默认启动加载下列配置
[include]
files = /www/supervisor/*.conf //file路径根据实际情况填写,这句话的意思是匹配supervisor下所有文件格式为.conf的都能加载进来
Laravel的队列demo
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/www.queue.com/laravelInit/artisan queue:work --queue=default --tries=3 --timeout=110 --daemon //队列名称是default,尝试的最大次数是3次,子进程执行最大时间是110,以守护进程运行
autostart=true //是否自启
autorestart=true //是否自动重启
user=root //用户
numprocs=5 //开启的进程数
相应命令
//启动 Supervisor
supervisord -c /etc/supervisord.conf
//查看是否启动
ps -ef | grep supervisor
查看进程
supervisorctl status
web界面操作
需要在supervisor的配置文件里添加[inet_http_server]选项组:之后可以通过http://10.211.55.11:9001来访问控制子线程的管理。
[inet_http_server]
port=10.211.55.11:9001
username=user
password=123
常用的命令
supervisor的客户端部分命令:
supervisorctl status 查看进程运行状态
supervisorctl start 进程名 启动进程
supervisorctl stop 进程名 关闭进程
supervisorctl restart 进程名 重启进程
supervisorctl update 重新载入配置文件
supervisorctl shutdown 关闭supervisord
supervisorctl clear 进程名 清空进程日志
supervisorctl 进入到交互模式下。使用help查看所有命令。
start stop restart + all 表示启动,关闭,重启所有进程。
supervisorctl stop all先关闭supervisor服务
之后再关闭supervisord服务
kill -9 pid
其中的注意事项总结见链接https://www.jianshu.com/p/3ad4883357ae