logo

  • 欢迎各位友链


  • 首页
  • 关于
  • 技术文章
  • 资源分享
  • 微语
  • 相册
  • 优秀博客
  • 留言

Supervisor — 守护进程工具管理 Laravel 队列进程

 2020/04/13
 Garlic
 0
 604
“ Supervisor在百度百科上给的定义是超级用户,监管员。Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它。可以运行在各种类unix的机器上,Supervisor就是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。 ”
Supervisor — 守护进程工具管理 Laravel 队列进程

前言

Supervisor 在百度百科上给的定义是超级用户,监管员。Supervisor 是一个进程管理工具,当进程中断的时候 Supervisor 能自动重新启动它。可以运行在各种类 unix 的机器上,Supervisor 就是用 Python 开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台 daemon,并监控进程状态,异常退出时能自动重启

安装 Supervisor

由于其基于 Python 开发,任何环境都可以通过 pip 安装

sudo pip install supervisor

Ubuntu 系统可用如下方式安装:

sudo apt-get install supervisor

MacOSX 系统可通过如下方式安装:

brew install supervisor

CentOS 系统可用如下方式安装:

yum install -y supervisor

安装完成后会有如下几个命令工具

  • supervisord,Supervisor 的守护进程启动命令,运行时会启动一个守护进程,其负责管理的子进程,且可在所管理的进程出现崩溃时自动重启
  • supervisorctl,用户与 Supervisor 交互的工具,方便用户管理子进程,可用来 stop、start、restart
  • echo_supervisord_conf,输出默认配置

安装完成后可以用 echo_supervisord_conf 命令测试是否安装成功。

配置 Supervisor

  1. 在etc目录下会存在一个 supervisord.conf 文件,如果没有此文件,则手动创建,执行:
echo_supervisord_conf > /etc/supervisord.conf
  1. 创建一个存放配置的文件夹目录,执行:
    mkdir /etc/supervisor/

    进入创建的文件夹目录, 执行

    touch laravel-worker.conf

    执行完后会创建一个 laravel-worker.conf 文件,编辑此文件,输入配置信息。配置文件如下:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/code/laravel_blog/artisan queue:work --tries=3
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-queue.log
  1. 保存配置文件后,修改 supervisord.conf 文件,拉到文件最下面,将引入路径,修改为新增的

修改如下:

[include]
files = /etc/supervisor/laravel-worker.conf

启动 Supervisor

执行

supervisord -c /etc/supervisord.conf

如果提示线程已启动,则使用 ps -ef 命令,查看 PID,使用 kill ,结束任务。

  1. 执行监听任务,保持队列运行

按顺序执行以下命令:

sudo supervisorctl reread --重新启动配置中的所有程序
sudo supervisorctl update --更新新的配置到supervisord
sudo supervisorctl start laravel-worker:* --启动某个进程(program_name=你配置中写的程序名称)

注意:如果提示 laravel-worker: ERROR (no such group) 错误,有可能是引入文件配置的路径错了,检查路径 /etc/supervisor/laravel-worker.conf 是否正确;还有 laravel-worker.conf 文件中的 user 是否是管理员账号 user=root

  1. 查看 Supervisor 任务执行状态 执行
    supervisorctl status

    查看执行状态。

查看 Supervisor 任务执行状态

添加开机启动服务

如果用 pip 或者 easy_instal 安装 supervisor,则不会默认将其添加到系统开机启动服务中。但这项工作可以自己来做,如果在 Ubuntu 系统下工作,用 apt 工具来安装则一切工作都会做好

要添加系统服务首先需要在 /etc/init.d/ 中创建服务脚本,记得为脚本添加可执行权限 chmod a+x /etc/init.d/superviser,然后为将 supervisor 添加到系统服务中:

update-rc.d supervisor defaults

MacOSX 中使用 brew ,则可以使用 brew service 来添加开机启动:

brew services start supervisor

Centos 中使用 systemctl 来添加开机启动:

systemctl enable supervisord

支付宝 微信
 28

Linux Laravel
  • 本文链接: Supervisor — 守护进程工具管理 Laravel 队列进程 | Garlic`s Blog
  • 版权声明:若无特殊注明,本文皆为《Garlic`s Blog》原创,转载请保留文章出处。
  • 备注:相关侵权、举报、投诉及建议等,请发E-mail:php_garlic@163.com。
 Laravel RABC 教程
 Laravel — 学习资料和开源项目集
  • 日常开发的效率提升工具
    日常开发的效率提升工具
  • 宝塔7.6.0去除登陆限制,及强制跳转 /bind解决方法
    宝塔7.6.0去除登陆限制,及强制跳转 /bind解决方法
  • Laravel 常用扩展包
    Laravel 常用扩展包
  • Laravel route() 方法生成 HTTPS 链接
    Laravel route() 方法生成 HTTPS 链接
暂无评论,快抢沙发吧~
  • 😋 支持Emoji表情,可用的 Emoji 请见 🤘 👉 Emoji 列表 ⭐ ✨
 请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!



 验证码
Garlic
Garlic
你能够拥有梦想,而且梦想能够实现,网络是离你梦想最近的地方!
 269
 关注 公众号
1150 本站已勉强运行
PV 今日pv
27 文章数量
文章搜索
最新评论
  • nevermore
    nevermore 2020/12/16
    文章

    博主这个网站搭建花了多久的哈。扒代码花了多久的哈

  • 演员
    演员 2020/10/03
    文章

    老哥这板子好帅,能分享哈不

 点击排行
 最多点赞
  • 宝塔面板安装云锁Nginx自编译web防护教程
    宝塔面板安装云锁Nginx自编译web防护教程
    2019/12/06浏览:750
  • Laravel Eloquent: 使用 hasMany 来处理『无限极分类』
    Laravel Eloquent: 使用 hasMany 来处理『无限极分类』
    2020/01/24浏览:724
  • PHP常用的字符串函数
    PHP常用的字符串函数
    2020/01/26浏览:627
  • Laravel Eloquent: 使用 hasMany 来处理『无限极分类』
    Laravel Eloquent: 使用 hasMany 来处理『无限极分类』
    2020/01/24点赞:100
  • 清除Windows 垃圾
    清除Windows 垃圾
    2020/09/30点赞:87
  • 日常开发的效率提升工具
    日常开发的效率提升工具
    2021/10/19点赞:81
 标签
常用工具 Windows 宝塔 Office SoftEther 负载均衡 百度网盘 Yii Thinkphp Apache
 友情链接
Laravel China 社区 椰子皮博客 站点导航
首页 Emoji 表情列表 网站地图
CopyRight © 2019 - 2023 - Garlic`s Blog - 粤ICP备17064364号-1
声明: 本站资源来源自网络,如有侵权,请联系站长删除! 本站前端模板采用 椰子皮博客