因为使用 Supervisor 管理项目进程,所以还是要适当了解了解 Supervisor 的操作。
安装
推荐使用 yum 而不是 pip 安装,使用 yum 安装的话会自动生成配置文件(/etc/supervisord.conf
),省时省力。
1 | yum install -y supervisor |
如果 yum 安装提示找不到 supervisor,可能是没有安装 epel 源:
1 | yum install -y epel-release |
配置
查看默认配置文件中托管程序配置文件格式
1 | cat /etc/supervisord.conf |
一般都在最后标明:
1 | [include] |
这说明,如果我们以配置文件 /etc/supervisord.conf
启动 supervisor,他会导入 /etc/supervisord.d/
文件夹下所有后缀名为 ini
的配置文件。
如果你的默认配置是 files = supervisord.d/*.conf
也很简单,只需要在目录 /etc/supervisord.d/
下创建后缀名为 conf
的配置文件即可。
如果没有默认配置文件,我们需要手动生成:
1 | echo_supervisord_conf /etc/supervisord.conf |
并且将生成配置文件最后的 [include]
以及 files
部分前面的注释 ;
去掉
创建托管程序配置文件
1 | vim /etc/supervisord.d/server.ini |
1 | [program:server] |
变量的意思基本都很明确,按照自己的需求进行修改即可。
启动 Supervisor
1 | supervisord -c /etc/supervisord.conf |
使用 supervisorctl
supervisorctl 是 supervisord 提供的一个命令行工具,用来简化管理。
下表列出了 supervisorctl 的命令和相应的用途(注:所有命令都需要管理员权限):
命令 | 用途 |
---|---|
supervisorctl update |
更新新的配置到 supervisord,用于添加新的程序的情况 |
supervisorctl reread |
重新加载已有程序的配置文件,不会主动添加新程序 |
supervisorctl start program |
启动程序 program |
supervisorctl stop program |
关闭程序 program |
supervisorctl restart program |
重启程序 program |
supervisorctl status |
查看所有托管程序状态 |
supervisorctl stop all |
停止所有程序 |
基本上就是这样。