Supervisor安装使用教程

2016-02-18 summer 更多博文 » 博客 » GitHub »

python linux supervisor

原文链接 http://fee.im/2016/02/linux-supervisor-installation-and-tutorial/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。

安装

因为Supervisor该组件使用python开发的,所以它的安装我们也可以pip进行安装。Supervisor 可以运行在 Linux、Mac OS X 上。

pip install supervisor
#如果你使用的是 ubunut 系统,还可以使用下面的命令安装
apt-get install supervisor

supervisord 配置

Supervisor 相当强大,提供了很丰富的功能,不过我们可能只需要用到其中一小部分。安装完成之后,可以编写配置文件,来满足自己的需求。首先我们创建配置文件。

#默认生成配置文件在下面路径
echo_supervisord_conf > /etc/supervisord.conf
#同样可以指定配置文件的存放目录
echo_supervisord_conf > /path/to/supervisord.conf

然后编辑该配置文件.配置文件supervisord.conf是一个ini文件,可以对http_server、supervisord、supervisorctl和program进行配置。不过默认生成的文件已经对大部分进行配置,如果简单使用,只需要配置program的部分就可以了。配置文件必须要有一个program配置项,这样supervisord才知道哪个program需要被管理和监控。

[program:client]
command=python /home/summer/app.py
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true
stdout_logfile=/home/summer/log/app.log
stderr_logfile=/home/summer/log/app.err

启动

supervisord     #默认使用/etc/supervisord.conf的配置文件
supervisord -c /path/to/supervisord.conf

通过supervisordctl管理进程

[root@study ~]# supervisorctl
client                           RUNNING   pid 4568, uptime 0:00:01
supervisor> status
client                           RUNNING   pid 4568, uptime 0:00:04
supervisor> stop client
client: stopped
supervisor> status
client                           STOPPED   Feb 18 11:15 AM
supervisor> start all
client: started
supervisor> status
client                           RUNNING   pid 4589, uptime 0:00:03
supervisor>

其他

除了 supervisorctl 之外,还可以配置 supervisrod 启动 web 管理界面,这个 web 后台使用 Basic Auth 的方式进行身份认证。 除了单个进程的控制,还可以配置 group,进行分组管理。 经常查看日志文件,包括 supervisord 的日志和各个 pragram 的日志文件,程序 crash 或抛出异常的信息一半会输出到 stderr,可以查看相应的日志文件来查找问题。 Supervisor 有很丰富的功能,还有其他很多项配置,可以在官方文档获取更多信息:http://supervisord.org/index.html