Laravel 手册是以 Ubuntu 为例写的,这里是Centos,与手册不同:
首先安装:
yum install -y supervisor
然后创建扩展配置文件:
cd /etc/supervisord.d
vi laravel-worker.ini
写入以下内容:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /你的Linux完整项目地址/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
user=www
numprocs=8
redirect_stderr=true
stdout_logfile=/www/wwwroot/app/worker.log
以下是说明:
command:XX 程序启动命令
autostart=true ;在supervisord启动的时候也自动启动
autorestart=true ;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
user=www ;用哪个用户启动进程,默认是root
numprocs=8 ;指定 Supervisor 运行 8 个 queue:work 进程并且监管它们,
redirect_stderr=true ;stderr重定向到stdout,默认false
stdout_logfile=/www/wwwroot/app/worker.log ;stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
执行命令启动Supervisor:
执行:
sudo supervisorctl reread
但是报错:
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
执行:
supervisord
再执行:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
OK了