Supervisor从安装到配置详情说明,学supervisor这一篇就够了

安装 EPEL 仓库(如果还没有安装): EPEL(Extra Packages for Enterprise Linux)是一个由 Fedora 社区打造,为 RHEL 及其衍生版如 CentOS 提供高质量软件包的项目。

sudo yum install epel-release

安装 Supervisor:

sudo yum install supervisor

启动 Supervisor 服务:

sudo systemctl start supervisord

设置 Supervisor 开机自启:

sudo systemctl enable supervisord

检查 Supervisor 状态:

sudo systemctl status supervisord

配置 Supervisor:

Supervisor 的配置文件通常位于 /etc/supervisord.conf。你可以在这个文件中配置要管理的程序。此外,你还可以将程序的配置文件放在 /etc/supervisor/conf.d/ 目录下,Supervisor 会自动读取这个目录下的所有 .conf 和.ini文件。

配置示例(task.ini):

[program:task_log]
command=php think queue:listen --queue task
directory=/www/wwwroot/abc.com/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/log/queue/task_log.out.log
stderr_logfile=/www/log/queue/task_log.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=apache
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d

示例配置解释:

[program:task_log]:

这是程序节的开始,task_log 是这个程序的名称。

command=php think queue:listen --queue task:

这是启动这个程序时执行的命令。这里使用 PHP 运行 think 命令行工具来监听名为 task 的队列。

directory=/www/wwwroot/abc.com/:

指定执行命令时的工作目录。这里设置为 /www/wwwroot/abc.com/。

autorestart=true:

当程序退出时,Supervisor 将尝试重启它。true 表示如果程序非正常退出,Supervisor 将自动重启它。

startsecs=3:

程序启动后,如果在这指定的秒数内没有退出,则 Supervisor 认为程序已成功启动。这里设置为 3 秒。

startretries=3:

如果程序启动失败,Supervisor 将尝试重启的次数。这里设置为 3 次。

stdout_logfile=/www/log/queue/task_log.out.log:

指定程序的标准输出日志文件的路径。这里设置为 /www/log/queue/task_log.out.log。

stderr_logfile=/www/log/queue/task_log.err.log:

指定程序的标准错误日志文件的路径

stdout_logfile_maxbytes=2MB:

指定标准输出日志文件的最大大小。当日志文件达到这个大小时,Supervisor 将会自动轮转日志。

stderr_logfile_maxbytes=2MB:

指定标准错误日志文件的最大大小。同样,当日志文件达到这个大小时,Supervisor 将会自动轮转日志。

user=apache:

指定以哪个用户身份运行这个程序。这里设置为 apache,通常用于 Web 服务器运行的应用程序。

priority=999:

程序的启动优先级。数值越小,优先级越高。这里设置为 999,意味着这个程序的启动优先级较低。

numprocs=1:

指定 Supervisor 管理的这个程序的进程数量。这里设置为 1,表示只运行一个进程。

process_name=%(program_name)s_%(process_num)02d:

指定进程的名称。这里使用 %(program_name)s 来引用程序的名称,%(process_num)02d 表示进程编号,前面补零,确保至少两位数。



重新加载 Supervisor 配置:

当你添加或修改了程序的配置文件后,需要重新加载 Supervisor 的配置。

sudo supervisorctl reread
sudo supervisorctl update



使用 Supervisor 管理程序:

使用 supervisorctl 命令来管理程序,例如启动、停止或重启程序。其中 program_name 是你在配置文件中定义的程序名称,没有名称就是操作全部

sudo supervisorctl start program_name
sudo supervisorctl stop program_name
sudo supervisorctl restart program_name


评论/留言