一、安装
1、安装yum源
yum install epel-release
2、yum 安装 supervisor
yum install supervisor
二、启动服务并查看服务的状态
systemctl start supervisord.service
systemctl status supervisord.service
三、配置使用
1、supervisor 的主配置文件在 /etc/supervisord.conf 该目录
主要配置描述内容
[unix_http_server]
#UNIX socket 文件,supervisorctl 会使用
file=/var/run/supervisor/supervisor.sock
#socket文件的mode,默认是0700
chmod=0700
#socket文件的owner,格式:uid:gid
chown=nobody:nogroup
#HTTP服务器,提供web管理界面
[inet_http_server]
#Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
port=127.0.0.1:9001
#登录管理后台的用户名
username=user
#登录管理后台的密码
password=123
[supervisord]
#日志文件,默认是 $CWD/supervisord.log
logfile=/var/log/supervisor/supervisord.log
#日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_maxbytes=50MB
#日志文件保留备份数量默认10,设为0表示不备份
logfile_backups=10
#日志级别,默认info,其它: debug,warn,trace
loglevel=info
#pid 文件
pidfile=/tmp/supervisord.pid
#是否在前台启动,默认是false,即以 daemon 的方式启动
nodaemon=false
#可以打开的文件描述符的最小值,默认 1024
minfds=1024
#可以打开的进程数的最小值,默认 200
minprocs=200
[supervisorctl]
#通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
serverurl=unix:///tmp/supervisor.sock
#通过HTTP的方式连接supervisord
serverurl=http://127.0.0.1:9001
#包含其它配置文件
[include]
files = supervisord.d/*.ini
2、子进程配置文件的说明
#项目名
[program:test]
#脚本目录
directory=/program/test
#脚本执行命令
command=php think test
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序exit的时候,这个program不会自动重启,默认unexpected,
#设置子进程挂掉后自动重启的情况,有三个选项,false,unexpected和true。
#如果为false的时候,无论什么情况下,都不会被重新启动,如果为unexpected,
#只有当进程的退出码不在下面的exitcodes里面定义的
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=5
#脚本运行的用户身份
user=root
#日志输出
stderr_logfile=/tmp/supervisor/blog_stderr.log
stdout_logfile=/tmp/supervisor/blog_stdout.log
#把stderr重定向到stdout,默认 false
redirect_stderr = true
#日志的大小
stdout_logfile_maxbytes = 20MB
#stdout日志文件备份数
stdout_logfile_backups = 20
3、子进程的常用命令
// 查看所有子进程的状态
supervisorctl status
// 停止名称为 test 的子进程
supervisorctl stop test
// 启动名称为 test 的子进程
supervisorctl start test
// 重启 test 子进程
supervisorctl restart test
// 配置文件修改后使用该命令加载新的配置
supervisorctl update
// 重新启动配置中的所有程序
supervisorctl reload
开启用户名和密码后,提示
Error: Server requires authentication
For help, use /usr/bin/supervisorctl -h
输入:
supervisorctl
输入用户名和密码,即可