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/supervisorctl

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

三、配置 ThinkPHP 队列服务

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

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

php 复制代码
[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"

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

php 复制代码
# 重新加载 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 提供了完善的进程监控和自动恢复机制,确保队列任务不会中断。

相关推荐
名誉寒冰4 分钟前
我是怎么理解 eBPF、AppArmor 和 Seccomp 的?
linux·网络·内核
H.莓飛10 分钟前
【Linux】命令行参数、环境变量与程序地址空间
linux·c语言·chrome·后端·centos
程序猿老A35 分钟前
GPU云服务器怎么安装AI
运维·服务器·人工智能
‎ദ്ദിᵔ.˛.ᵔ₎37 分钟前
linux 进程间通信
linux·网络
Ruiery44 分钟前
Linux 6.6内核 CPU 深度解析(八):percpu 变量 — 每个 CPU 一份数据,无锁访问
linux·运维·服务器
91刘仁德1 小时前
传输层协议深度拆解:端口寻址、UDP 报文与 TCP 可靠性机制全解析
linux·网络·c++·网络协议·tcp/ip·udp·c
AIgorithmGEEK1 小时前
[Linux]HTTP 应用层协议全解(中篇)
linux·网络·网络协议·http
玖石书1 小时前
linux 安装uv(python虚拟环境管理)
linux·python·uv
皓月盈江2 小时前
Hexo博客Butterfly5.7.0主题网站信息:本站访客数和本站总浏览量的数据一直加载不显示的解决方法
linux·hexo·butterfly·busuanzi·vercount·本站访客数·本站总浏览量
程序猿老A2 小时前
云服务器怎么配置视频存储?
运维·服务器·音视频