安装 supervisor

Laravel job 进程管理工具 Supervisor

系统

CentOS Linux release 7.4.1708
Homestead 4.15 Ubuntu 18.04 LTS

Supervisor 安装

easy_install supervisor

sudo easy_install supervisor

Supervisor 配置

1、生成新主配置文件

echo_supervisord_conf > /etc/supervisord.conf // 需要 root 限制,sudo 不管用

2、修改 supervisord.conf 主配置文件

·
·
[unix_http_server]
file=/var/run/supervisor.sock   ; the path to the socket file
·
·
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
·
·
[supervisord]
logfile=/var/log/supervisord.log ; main log file; default $CWD/supervisord.log
·
·
pidfile=/var/run/supervisord.pid ; supervisord pidfile; default supervisord.pid
·
·
[include]
files = /etc/supervisor/*.conf

3、启动 supervisor(确保9001端口未被占用)

sudo supervisord -c /etc/supervisord.conf

4、创建第二步对应的文件

sudo touch  /var/run/supervisor.sock
sudo chmod 777 /var/run/supervisor.sock
sudo touch /var/log/supervisord.log  // 已经存在再次创建也没影响
sudo chmod 777 /run
sudo chmod 777 /var/log

5、创建 supervisor 项目配置文件

// 查看 /etc/supervisord.conf 文件
[include]
files = /etc/supervisor/*.conf // 这个路径放置项目对应的 supervisor 配置文件
// 在 /etc/supervisor/ 目录下创建以 laravel-worker.conf配置文件(以 .conf 结尾即可),内容如下
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /data/www/laravel/artisan queue:work --sleep=3 --tries=3
autostart=true
autorestart=true
user=vagrant // 自己的用户名
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-queue.log // 配置文件路径

6、创建 supervisor 项目配置文件日志

sudo mkdir /var/log/supervisor
sudo touch /var/log/supervisor/laravel-queue.log 
sudo chmod 777 /var/log/supervisor/laravel-queue.log
sudo chown vagrant:vagrant /var/log/supervisor/laravel-queue.log
sudo chown vagrant:vagrant /var/log/supervisor

启动 supervisor 项目配置文件

sudo supervisorctl reread   // 重新加载主配置文件

sudo supervisorctl update // 创建项目配置文件进程组

sudo supervisorctl start laravel-worker:*  // 启动监听进程

sudo supervisorctl status  // 出现以下则成功
laravel-worker:laravel-worker_00   RUNNING   pid 12425, uptime 0:04:52
laravel-worker:laravel-worker_01   RUNNING   pid 12426, uptime 0:04:52
laravel-worker:laravel-worker_02   RUNNING   pid 12427, uptime 0:04:52
laravel-worker:laravel-worker_03   RUNNING   pid 12428, uptime 0:04:52
laravel-worker:laravel-worker_04   RUNNING   pid 12429, uptime 0:04:52
laravel-worker:laravel-worker_05   RUNNING   pid 12430, uptime 0:04:52
laravel-worker:laravel-worker_06   RUNNING   pid 12431, uptime 0:04:52
laravel-worker:laravel-worker_07   RUNNING   pid 12432, uptime 0:04:52

Note

Laravel Job 代码修改后,需要重启 supervisor 才会生效

Supervisor 命令

sudo supervisorctl status
sudo supervisorctl stop usercenter
sudo supervisorctl stop all   //  停止所有
sudo supervisorctl start usercenter
sudo supervisorctl restart usercenter
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl  // 进入 cli 

官网supervisord.org/running.html
原文连接分享:使用 Supervisor 管理 Laravel 队列进程
参考连接blog.tanteng.me/2017/01/supervisor...
参考连接blog.csdn.net/qq_28885149/article/...
supervisor Web管理界面与开房自启动www.cnblogs.com/lemon-flm/articles/...

本作品采用《CC 协议》,转载必须注明作者和本文链接
光年之外
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6

sudo touch /var/log/supervisord.log // 已经存在再次创建也没影响

存在的话会更新创建时间吧,记得是

5年前 评论

file
请问这句是否写漏了什么?

4年前 评论

@乄Z 我想是滴,修改成了 777 权限。 快速开始使用可用 777。 推荐相应的用户给相应滴权限。

4年前 评论

运行sudo supervisorctl reread 命令出现如下错误:

error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!