当前位置: 首页 > news >正文

CentOS服务器安装Supervisor使队列可以在后台运行

一、安装 Supervisor

1. 安装 EPEL 源(Supervisor 依赖)
sudo yum install epel-release
2. 安装 Supervisor
sudo yum install supervisor
3. 启动服务并设置开机自启
sudo systemctl start supervisord
sudo systemctl enable supervisord

二、验证安装结果

which supervisorctl
# 应输出:/usr/bin/supervisorctlsupervisorctl status
# 应输出:No programs to manage(表示安装成功但尚未配置进程)

三、配置 ThinkPHP 队列服务

1. 创建配置文件
sudo vim /etc/supervisord.d/thinkphp-queue.ini
2. 添加配置内容(ini

注意:此处的 “;开机自动启动” 等注释要另起一行,不能与 autostart=true 配置文件内容在同一行,会导致报错。

[program:thinkphp-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/myweb/think queue:work --queue=default --sleep=3 --tries=3
directory=/www/wwwroot/myweb
autostart=true
autorestart=true
user=www
numprocs=1
redirect_stderr=true
stdout_logfile=/www/wwwroot/myweb/runtime/log/queue.log
stopwaitsecs=3600
environment=APP_ENV="production",PATH="/usr/bin:/usr/local/bin"

四、加载配置并启动队列服务

# 重新加载 Supervisor 配置
sudo supervisorctl reread
sudo supervisorctl update# 启动队列服务
sudo supervisorctl start thinkphp-queue:*# 重启队列任务:
sudo supervisorctl restart thinkphp-queue:*# 查看状态
sudo supervisorctl status
# 应输出类似:thinkphp-queue:thinkphp-queue_00   RUNNING   pid 12345, uptime 0:00:10

五、常用管理命令

sudo supervisorctl status       # 查看所有进程状态
sudo supervisorctl start all    # 启动所有进程
sudo supervisorctl stop all     # 停止所有进程
sudo supervisorctl restart all  # 重启所有进程# 针对特定进程
sudo supervisorctl start thinkphp-queue:*
sudo supervisorctl stop thinkphp-queue:*

六、查看队列日志

tail -f /www/wwwroot/myweb/runtime/log/queue.log

七、故障排查

1. 配置文件语法错误
sudo supervisorctl reread
# 如果有错误,会提示:Error: , file: /etc/supervisord.d/thinkphp-queue.ini line X: ...
2. 服务无法启动
sudo systemctl status supervisord
sudo journalctl -u supervisord  # 查看详细日志
3. 进程一直处于 FATAL 状态

检查命令路径是否正确,用户权限是否足够,PHP 环境是否正常。

八、多队列配置示例(ini

[program:thinkphp-queue-high]
command=php /www/wwwroot/myweb/think queue:work --queue=high --sleep=3 --tries=3
user=root
numprocs=2  # 高优先级队列分配更多进程[program:thinkphp-queue-medium]
command=php /www/wwwroot/myweb/think queue:work --queue=medium --sleep=3 --tries=3
user=root
numprocs=1[program:thinkphp-queue-low]
command=php /www/wwwroot/myweb/think queue:work --queue=low --sleep=3 --tries=3
user=root
numprocs=1

九、总结

通过以上步骤,可以在 CentOS 服务器上成功安装 Supervisor 并配置 ThinkPHP 队列服务在后台稳定运行。Supervisor 提供了完善的进程监控和自动恢复机制,确保队列任务不会中断。


文章转载自:
http://borough.apjjykv.cn
http://annihilative.apjjykv.cn
http://aeromagnetic.apjjykv.cn
http://balletically.apjjykv.cn
http://boxkeeper.apjjykv.cn
http://archaebacteria.apjjykv.cn
http://checkstring.apjjykv.cn
http://chorizo.apjjykv.cn
http://botfly.apjjykv.cn
http://bonn.apjjykv.cn
http://antithesis.apjjykv.cn
http://assimilability.apjjykv.cn
http://aerophagia.apjjykv.cn
http://act.apjjykv.cn
http://ananas.apjjykv.cn
http://charles.apjjykv.cn
http://bayrut.apjjykv.cn
http://bedclothes.apjjykv.cn
http://adamantane.apjjykv.cn
http://beltsville.apjjykv.cn
http://bolshy.apjjykv.cn
http://canalled.apjjykv.cn
http://adventism.apjjykv.cn
http://backbiting.apjjykv.cn
http://anna.apjjykv.cn
http://anomalous.apjjykv.cn
http://aerobics.apjjykv.cn
http://biannually.apjjykv.cn
http://charrette.apjjykv.cn
http://cabezon.apjjykv.cn
http://www.dtcms.com/a/281159.html

相关文章:

  • 【用unity实现100个游戏之33】用Unity手搓一个类【红色警戒|魔兽争霸|帝国时代|星际争霸】3D RTS游戏(附源码)
  • vue openlayer创建地图弹框overlay
  • 【html常见页面布局】
  • [ROS 系列学习教程] ROS动作通讯(Action):通信模型、Hello World与拓展
  • k8s环境使用Operator部署Seaweedfs集群(下)
  • 【鸿蒙HarmonyOS】鸿蒙app开发入门到实战教程(三):实现一个音乐列表的页面
  • Flutter Socket 连接方案分析与适用场景
  • RestTemplate 实现后端 HTTP 调用详解
  • spring-ai-alibaba 多模态之音频
  • 前端Vue.js面试题(4)
  • 超详细 anji-captcha滑块验证springboot+uniapp微信小程序前后端组合
  • 如何定义一个只能在堆上或栈上生成对象的类
  • Python初学者笔记第十二期 -- (集合与字典编程练习题)
  • U-Boot 中增加 GIC-400中断服务程序
  • Copula理论:覆盖相关性分析、极值相依性、回归建模、时间序列预测、贝叶斯网络,R/Python双语言实现+AI编程辅助(科研绘图与结果呈现)
  • Nestjs框架: 数据库多租户模式与动态模块初探
  • Oracle日期时间函数说明及与MySql区别说明
  • 同济医院R语言训练营第三期开讲!上交大张维拓老师主讲
  • RabbitMQ工作流程
  • SQL学习记录01
  • 15.图像 模板轮廓检测
  • 李白周游记50篇
  • linux-develop
  • 基于Alpine构建MySQL镜像
  • 第二阶段-第二章—8天Python从入门到精通【itheima】-129节(MySQL的安装)
  • 【前后端】Node.js 模块大全
  • 巨坑检查无误还报错is not mapped MappingException: Unknown entity:@Entity
  • DeepSWE:通过强化学习扩展训练开源编码智能体
  • 多层 `while` 循环中,`break` 的行为
  • ES2023 新特性解析_数组与对象的现代化操作指南