您的位置:首页 > 其它

进程管理工具Supervisor的使用

2018-09-03 16:47 501 查看

进程管理工具Supervisor的使用2014-09-30 11:00

基本介绍

Supervisor是一款Linux下的进程管理软件。最主要的两个功能是:

将非daemon程序变成deamon方式运行

对程序进行监控,当程序退出时,可以自动拉起程序

Supervisor的官方网站: Supervisor

安装

Supervisor是基于python开发的。安装Supervisor前,需要先安装python。Supervisor可以通过pip或者easy_install安装。

通过pip安装
pip install supervisor


通过easy_install安装
easy_install supervisor


基本使用

生成配置文件

Supervisor没有默认配置文件,需要手工执行命令生成配置文件:

echo_supervisord_conf > /etc/supervisord.conf


基础应用

修改配置文件将某业务进程以deamon方式拉起,并对此进行监控:

1
2
3
4
[program:check12306]
command=/opt/blog.cheyo.net/check12306.py
autostart=true
autorestart=true
启动Supervisor:

supervisord -c /etc/supervisord.conf

停止Supervisor(子进程也会被停止)

supervisorctl shutdown

查看Supervisor是否已经启动:

[root@aaa blog.cheyo.net]# ps -ef | grep supervisor | grep -v grep
root      1170     1  0 18:57 ?        00:00:00 /usr/bin/python /usr/bin/supervisord
[root@aaa blog.cheyo.net]#

查看业务进程是否已经被拉起:

[root@aaa blog.cheyo.net]# supervisorctl status
check12306                       RUNNING   pid 1230, uptime 0:04:39
[root@aaa blog.cheyo.net]#


维护命令

Supervisor可通过维护命令supervisorctl管理或通过web管理界面管理。维护命令supervisorctl有两种用法。一种是命令式,一种是交互式。

命令式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查询各进程运行状态
supervisorctl status
# 启、停、重启业务进程,check12306为进程名,即[program:check12306]里配置的值
supervisorctl start check12306
supervisorctl stop check12306
supervisorctl restart check12306
#重启所有属于名为groupworker这个分组的进程
supervisorctl start groupworker
supervisorctl stop groupworker
supervisorctl restart groupworker
#启、停、重启全部进程(不会载入最新的配置文件)
supervisorctl start all
supervisorctl stop all
supervisorctl restart all
#重新加载配置文件.停止原有进程并按新的配置启动所有进程
supervisorctl reload
#根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。
supervisorctl update
#注意:显示用stop停止掉的进程,用reload或者update都不会自动重启
交互式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@aaa blog.cheyo.net]# supervisorctl
check12306                       RUNNING   pid 1256, uptime 0:01:47
supervisor> stop check12306
check12306: stopped
supervisor> start check12306
check12306: started
supervisor> status
check12306                       RUNNING   pid 1258, uptime 0:00:04
supervisor> restart check12306
check12306: stopped
check12306: started
supervisor> status
check12306                       RUNNING   pid 1259, uptime 0:00:02
supervisor>
Web管理

开启Supervisor的web管理界面:

1
2
3
4
[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9001                ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))
效果如下:



其他功能

多进程运行

分别在8000和8001两个端口开启两个Tornado进程:

1
2
3
4
5
6
7
8
[program:TornadoBlog]
command=python /opt/data/product/blog/run.py --port=80%(process_num)02d
process_name=80%(process_num)02d
stdout_logfile=/opt/data/product/blog/log/tornado-80%(process_num)02d.log
numprocs=2
numprocs_start=0
autorestart=true
redirect_stderr=true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Supervisor Easy Install