安装
$ yum install -y supervisor
然后创建扩展配置文件
这里已 laravel 为例
$ cd /etc/supervisord.d$ vi laravel-worker.ini
写下以下内容
[program:laravel-worker]process_name=%(program_name)s_%(process_num)02dcommand=php /你的Linux完整项目地址/artisan queue:work redis --sleep=3 --tries=3autostart=trueautorestart=trueuser=wwwnumprocs=8redirect_stderr=truestdout_logfile=/www/wwwroot/app/worker.log
说明
command:XX 程序启动命令autostart=true ;在supervisord启动的时候也自动启动autorestart=true ;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启user=www ;用哪个用户启动进程,默认是rootnumprocs=8 ;指定 Supervisor 运行 8 个 queue:work 进程并且监管它们,redirect_stderr=true ;stderr重定向到stdout,默认falsestdout_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,问题解决
