Laravel job 进程管理工具 Supervisor
系统
CentOS Linux release 7.4.1708
Homestead 4.15 Ubuntu 18.04 LTS
Supervisor 安装
easy_install supervisor
1
| sudo easy_install supervisor
|
Supervisor 配置
1、生成新主配置文件
1
| echo_supervisord_conf > /etc/supervisord.conf // 需要 root 限制,sudo 不管用
|
2、修改 supervisord.conf 主配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| · · [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端口未被占用)
1
| sudo supervisord -c /etc/supervisord.conf
|
4、创建第二步对应的文件
1 2 3 4 5
| 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 项目配置文件
1 2 3
| // 查看 /etc/supervisord.conf 文件 [include] files = /etc/supervisor/*.conf // 这个路径放置项目对应的 supervisor 配置文件
|
1 2 3 4 5 6 7 8 9 10
| // 在 /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 项目配置文件日志
1 2 3 4 5
| 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 项目配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 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 命令
1 2 3 4 5 6 7 8
| 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
|
官网:http://supervisord.org/running.html
原文连接:https://learnku.com/laravel/t/3592/using-supervisor-to-manage-laravel-queue-processes?#reply73153
参考连接:https://blog.tanteng.me/2017/01/supervisor-laravel-queue
参考连接https://blog.csdn.net/qq_28885149/article/details/79364685
supervisor Web管理界面与开房自启动:http://www.cnblogs.com/lemon-flm/articles/9283664.html