51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

linux使用supervisor管理系统服务

# linux 使用 supervisor 管理系统服务 {#linux-使用-supervisor-管理系统服务}

本文讲述 linux 系统如何使用 supervisor 管理系统服务。传统的 linux 系统服务管理采用的是 init 脚本(如 centos 6)。使用 supervisor 方案可以支持服务进程死掉后自动重启。
提示

  • 提供与Systemd类似的功能。
  • 若 docker 宿主机的操作系统版本过低(如 centos6),那么生成的 docker 容器中无法使用 systemctl,进而无法使用 Systemd 管理后台服务,此时可以使用 supervisor 方案。

# 安装 supervisor 管理工具 {#安装-supervisor-管理工具}

# centos 安装 supervisor {#centos-安装-supervisor}

建议使用centos7版本以上, centos6仓库没有提供该软件包,安装supervisor的步骤比较繁琐。

yum install supervisor

还可以通过python包管理工具pip来安装,步骤如下: yum install python-setuptools -y
easy_install pip
pip install supervisor

# 基于模板生成 supervisor 的通用配置文件 {#基于模板生成-supervisor-的通用配置文件}

echo_supervisord_conf > /etc/supervisord.conf
补充如下配置

[include]
files = /etc/supervisord.d/*.conf

为了方便管理,每个应用程序在/etc/supervisord.d 下创建一份单独的配置文件。

# 启动 supervisor {#启动-supervisor}

supervisord -c /etc/supervisord.conf

# 支持应用程序自动重启 {#支持应用程序自动重启}

提示

此处以/root/redirect-api --profile back-pro 为例。

  1. 创建配置文件/etc/supervisord.d/redirect.conf

    [program:redirect] command=/root/redirect-api --profile back-pro ; 被监控的进程路径 priority=1 ;数字越高,优先级越高 numprocs=1 ; 启动几个进程 autostart=true ; 随着supervisord的启动而启动 autorestart=true ; 自动重启。。当然要选上了 startretries=100 ; 启动失败时的最多重试次数 exitcodes=0 ; 正常退出代码(是说退出代码是这个时就不再重启了吗?待确定) stopsignal=KILL ; 用来杀死进程的信号 stopwaitsecs=10 ; 发送SIGKILL前的等待时间 redirect_stderr=true ; 重定向stderr到stdout stdout_logfile=/var/log/supervisor.log ; 配置标准输出日志文件 stderr_logfile=/var/log/supervisor.log ; 配置错误输出日志文件

若程序启动时需要指定当前工作目录,那么还需要配置directory参数

  1. 重新加载配置文件 supervisorctl reload

# 管理应用程序 {#管理应用程序}

# 通过命令行管理 {#通过命令行管理}

提示

此处以 redirect 应用程序为例。

supervisorctl status redirect
supervisorctl stop redirect
supervisorctl start redirect
supervisorctl restart redirect

redirect 换成all,即可管理所有应用程序。

# 通过 web 界面管理 {#通过-web-界面管理}

这是 supervisor 的特色功能,Systemd 无此功能。
相关使用方法待日后完善。

# 注意 {#注意}

# supervisor 只能运行前台命令 {#supervisor-只能运行前台命令}

无法运行 daemon 服务,如 service httpd start
若想运行 daemon 服务,也有解决方法,请自行查找教程。

赞(2)
未经允许不得转载:工具盒子 » linux使用supervisor管理系统服务