supervisor安装(一)

一、supervisor简介

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

二、supervisor安装

安装方式1:
使用pip安装
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
pip install supervisor

方式2:
使用easy_install 安装
# 如果没有 easy_install 需要安装 python-setuptools
$ yum install python-setuptools
$ easy_install supervisor

方式3:
# 安装 epel 源,如果此前安装过,此步骤跳过
yum install -y epel-release
yum install -y supervisor  

配置

安装好supervisor之后,默认是没有生成配置文件的。可以通过以下命令生成配置文件, pip安装后echo_supervisord_conf在 ./bin 目录下

echo_supervisord_conf > /etc/supervisord.conf

我们通常是把配置文件放到/etc/下面,当然也可以放到任意路径下面。

# 设置默认配置
$ echo_supervisord_conf > /etc/supervisord.conf
$ vim /etc/supervisord.conf

将此项加入末尾,supervisor 默认启动加载下列配置

[include]
files = /data/supervisor/*.conf

创建文件夹

mkdir -p /data/supervisor

四、连接/启动

/usr/bin/supervisorctl -c /etc/supervisord.conf
status     # 查看状态
reload     # 重新加载
restart [name/all]     # 重启单个/所有
stop       # 停止
start      # 启动
update     # 配置文件修改后可以使用该命令加载新的配置
help       # 帮助命令

初次启动遇到的问题:

问题1:使用supervisorctl启动时出现error: <class 'socket.error'>

[root@l-vm config]# supervisorctl -c /data/server/config/supervisor.conf
unix:///data/logs/supervisor.sock no such file
supervisor> reload
Really restart the remote supervisord process y/N? y
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
supervisor> reload
Really restart the remote supervisord process y/N? y
error: <class 'socket.error'>, [Errno 2] No such file or directory: file: /usr/lib64/python2.7/socket.py line: 224
supervisor>

解决办法:supervisord -c /etc/supervisor/supervisord.conf来启动

supervisor组件

  • supervisord
    主进程,负责管理进程的server,它会根据配置文件创建指定数量的应用程序的子进程,管理子进程的整个生命周期,对crash的进程重启,对进程变化发送事件通知等。同时内置web server和XML-RPC Interface,轻松实现进程管理。。该服务的配置文件在/etc/supervisor/supervisord.conf。
  • supervisorctl
    客户端的命令行工具,提供一个类似shell的操作接口,通过它你可以连接到不同的supervisord进程上来管理它们各自的子程序,命令通过UNIX socket或者TCP来和服务通讯。用户通过命令行发送消息给supervisord,可以查看进程状态,加载配置文件,启停进程,查看进程标准输出和错误输出,远程操作等。服务端也可以要求客户端提供身份验证之后才能进行操作。
  • Web Server
    supervisor提供了web server功能,可通过web控制进程(需要设置[inethttpserver]配置项)。
  • XML-RPC Interface
    XML-RPC接口, 就像HTTP提供WEB UI一样,用来控制supervisor和由它运行的程序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值