首先安装:
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了