Supervisor安装使用
Supervisor配置
一、supervisor在centos7配置
(1)下载安装supervisor
先查看py的版本,默认在linux环境上默认安装了python,查看版本号
python -V
安装supervisor
easy_install supervisor
2.supervisor安装完成后会生成三个执行程序在/usr/bin:
supervisord: 守护进程服务(用于接收进程管理命令)
supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)
echo_supervisord_conf:生成初始配置文件程序
3.检查supervisor的版本
/usr/bin/supervisord -v
假如版本是3.03的会报错如下,这种情况下,你需要将supervisor升级为4.04
/usr/lib/python2.7/site-packages/supervisor/options.py:383: PkgResourcesDeprecationWarning: Parameters to load are deprecated. Call .resolve and .require separately.
return pkg_resources.EntryPoint.parse("x="+spec).load(False)
先卸载supervisor
卸载supervisor,前提是用 easy_install 安装
easy_install -m supervisor
手动卸载
- 先删除/usr/bin中的三个文件
- 再删除/usr/lib/python2.7/site-packages/supervisor*
安装新版本
Url地址为:https://github.com/Supervisor/supervisor
手动安装
解压安装
unzip supervisor-master.zip
python setup.py install
/usr/bin/supervisord -v
4.配置supervisor
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
mkdir /etc/supervisor/work
- 配置文件配置
- supervisord.conf
- publish_queue.conf
开启supervisor服务
启动命令
supervisord -c /etc/supervisor/supervisord.conf
开启服务
supervisorctl
执行命令如下
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> update
supervisor> start laravel-work:*
supervisor> exit
设置开机自启
ftp上传supervisord.service到/usr/lib/systemd/system中
设置开机自启
systemctl enable supervisord.service
判断开机自启是否成功
systemctl is-enabled supervisord
work目录中
publish_queue.conf 举例:
[program:publish_queue] process_name=%(program_name)s_%(process_num)02d command=/usr/local/php/bin/php /webdata/wwwroot/default/artisan queue:work redis --queue=publish_queue --tries=3 --timeout=60 autostart=true autorestart=true user=root startsecs=50 numprocs=5 redirect_stderr=true stdout_logfile=/webdata/wwwroot/default/storage/logs/publish_queue.log
supervisord.service 自启动举例:
# dservice for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf ExecStop=/usr/bin/supervisorctl shutdown ExecReload=/usr/bin/supervisorctl start all KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target