安装的时候, 因为国内外访问环境不同, 可能会出现国内访问速度慢情况, 可以考虑更换源
更换镜像源 , 加速 python 安装

安装 Python3

  1. $ yum install vim git yum-utils python3 python3-devel
  2. $ pip3 install --upgrade pip

安装 Supervisor

安装 Supervisor

  1. $ pip3 install supervisor

这里安装完成之后, 执行文件在 /usr/local/bin/ 目录下, 这个目录下存在三个文件

  1. echo_supervisord_conf # 输出配置文件
  2. supervisorctl # supervisor 控制
  3. supervisord # supervisor 守护进程

如果使用 sudo pip3 install --user supervisor 进行安装,则安装的目录会在 ~/.local/bin 目录下, 这里我们选择使用 root 用户来安装, 然后运行.

使用之前版本或者是 yum 安装的版本安装的位置一般会在 /usr/bin 目录下, 如果是多版本 supervisor 可以通过路径来进行区分

增加配置文件

  1. # 生成配置文件
  2. $ echo_supervisord_conf > /etc/supervisord.conf

增加服务管理

使用 systemctl 来启动 supervisor,文件内容

文件地址: initscripts/centos-systemd-etcs

  1. $ vim /usr/lib/systemd/system/supervisord.service
  1. # supervisord service for systemd (CentOS 7.0+)
  2. # by ET-CS (https://github.com/ET-CS)
  3. [Unit]
  4. Description=Supervisor daemon
  5. [Service]
  6. Type=forking
  7. ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf
  8. ExecStop=/usr/local/bin/supervisorctl $OPTIONS shutdown
  9. ExecReload=/usr/local/bin/supervisorctl $OPTIONS reload
  10. KillMode=process
  11. Restart=on-failure
  12. RestartSec=42s
  13. [Install]
  14. WantedBy=multi-user.target

启动 Supervisord

  1. # 如果对 supervisord.service 中更改了路径, 则需要重新加载内容
  2. $ systemctl daemon-reload
  3. $ systemctl start supervisord

参考

常用的命令

  1. supervisorctl stop program
  2. supervisorctl start program
  3. supervisorctl restart program
  4. supervisorctl status
  5. supervisorctl reload

升级

升级的逻辑是安装新的版本, 然后删除旧版本

如果是通过 yum 安装或者 pip(2.x) 版本安装的, 则可以对老板板进行删除

  1. $ yum remove supervisor
  2. # 移除 python2 版本的, 如果 pip 链接到 pip3 , 则无法使用这个进行卸载
  3. $ pip uninstall supervisor

使用非 root 用户来管理supervisor

由于默认使用非 root 用户启动服务,所以需要单独配置允许其使用。官方这个 Issue 中提到了解决方法:

Permession denied error when use supervisorctl · Issue #173 · Supervisor/supervisor · GitHub

  1. $ groupadd supervisor
  2. $ usermod -aG supervisor doraemon
  3. $ sed -i "s/;chmod=0700/chmod=0770/" /etc/supervisord.conf
  4. $ sed -i "s/;chown=nobody:nogroup/chown=root:supervisor/" /etc/supervisord.conf