Supervisor安装配置

安装supervisor

# sudo su - #切换为root用户
# yum install epel-release
# yum install -y supervisor
# systemctl enable supervisord # 开机自启动
# systemctl start supervisord # 启动supervisord服务
# systemctl status supervisord # 查看supervisord服务状态
# ps -ef|grep supervisord # 查看是否存在supervisord进程

配置Supervisor

1.修改/etc/supervisord.conf文件内容

; files = supervisord.d/*.ini
files = /etc/supervisor/conf.d/*.conf

2.在/etc/supervisor/下创建conf.d文件夹,及ProjectName.conf(以项目名称命名的),添加内容如下:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /data/wwwroot/laravel/artisan queue:listen --tries=3
autostart=true
autorestart=true
user=www
numprocs=2
redirect_stderr=true
stdout_logfile=/data/wwwlogs/laravel-worker.log
[program:app] ; 程序名称,在 supervisorctl 中通过这个值来对程序进行一系列的操作
autorestart=True ; 程序异常退出后自动重启
autostart=True ; 在 supervisord 启动的时候也自动启动
redirect_stderr=True ; 把 stderr 重定向到 stdout,默认 false
environment=PATH="/home/app_env/bin" ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是使用指定的 virtualenv 环境
command=python server.py ; 启动命令,与手动在命令行启动的命令是一样的
user=ubuntu ; 用哪个用户启动
directory=/home/app/ ; 程序的启动目录
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/usercenter_stdout.log

3.执行命令使配置文件生效

supervisorctl reread
supervisorctl update

4.重启supervisord或者修改了 /etc/supervisord.conf执行

supervisorctl reload

运行

# supervisorctl start laravel:*

查看运行状态

# supervisorctl status
//提示RUNNING代表成功

查看进程 (ps -ef | grep ProjectName)

# ps -ef|grep laravel

常用命令

service supervisord start   #启动
service supervisord stop #停止
service supervisord status #状态
supervisorctl reread
supervisorctl update
supervisorctl reload
supervisorctl status
supervisorctl shutdown #关闭所有任务
supervisorctl stop|start program_name #启动或停止服务
supervisorctl status #查看所有任务状态
0%