阿里云安装Supervisor, 配置laravel队列

1.安装 Supervisor

Supervisor 是 Linux 操作系统下中的一个进程监控器,它可以在 queue:work 挂掉时自动重启。在 Ubuntu 上安装 Supervisor,你可以使用如下命令:

sudo yum install supervisor

启动supervisor

supervisord -c /etc/supervisord.conf

查看是否已启动

ps -ef|grep supervisord
root 1891 1 0 13:40 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root 1915 1218 0 13:40 pts/4 00:00:00 grep --color=auto supervisord

这样 supervisor安装成功了

2.配置

运行supervisord服务的时候,需要指定supervisor配置文件

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

添加管理的进程的配置文件,已经新建一个目录 /etc/supervisor/ 用于存放这些配置文件,相应的,把 /etc/supervisord.conf 里 include 部分的的配置修改一下:

[include]
files = /etc/supervisor/*.conf

在/etc/supervisor/下创建laravel-worker.conf 文件使之启动和监控一个 queue:work 进程:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d ;
command = /usr/local/php/bin/php artisan queue:work --daemon;启动命令
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 用哪个用户启动
redirect_stderr = true ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /www/project/laravel-work.log

3.启动 Supervisor

更新 Supervisor 配置并启动进程

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*

以下是常用命令

#读取有更新(增加)的配置文件,不会启动新添加的程序
$ supervisorctl reread
#重启配置文件修改过的程序
$ supervisorctl update
#查看程序状态
$ supervisorctl status
#启动程序 App_name
$ supervisorctl start App_name
#关闭程序 App_name
$ supervisorctl stop App_name
#重启程序 App_name
$ supervisorctl restart App_name

4.开机自启

查看/usr/lib/systemd/system/supervisord.service文件是否存在,没有的话新建并加入一下内容

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
[Install]
WantedBy=multi-user.target

然后运行

systemctl enable supervisord

再验证是否开机启动,返回enabled就证明成功了

systemctl is-enabled supervisord

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页