今天第一次在CSDN上面写博客,希望以后能写出更多的博客。废话不多说进入主题。
supervisor是什么?
supervisor是python写的进程管理工具可以,可以在linux环境下面监控进程,并且当进程挂掉的时候自动的拉起进程。
因为我是个php开发者,所以对python的安装不是很熟悉,所以一开始就按照了网上教程去安装supervisor,结果捣腾了一天多都没把这玩意安装好(命令 yum install supervisor supervisor在linux环境安装时安装上去了,也配置了配置文件。然后我写了个php死循环,然后通过kill命令将其进程杀死确实杀死过后,又帮我重新拉起了进程。但是这玩意是有个web界面的我就想通过web界面去管理,但是修改配置文件死活没办法启动界面),心里很是纠结。
1. 晚上回去就想了想能不能换种方法去安装,然后又去查阅资料,发现可以通过 python 的安装工具 pip去安装,那好我就开始尝试了先安装pip 命令 yum -y install pip
2. 然后使用命令 pip install supervisor 一路顺利的就能安装好
3. 是用此命令 echo_supervisord_conf > /etc/supervisord.conf 生成个配置文件到 /etc/supervisord.conf
可能执行此命令的时候有错误 例如:
此时进入 /usr/lib/python2.6/site-packages/supervisor-3.3.1-py2.6.egg-info/requires.txt 将 meld3 >= 0.6.5 (也就是在前面加一个 #好久算注释了)
此时在去执行 echo_supervisord_conf > /etc/supervisord.conf 好了,发现不会报错了,那也就是成功了(YES)。
4. 接下来就是配置的时刻了
这里以添加 MongoDB 进程为例,首先修改 supervisord.conf:
$ vim supervisord.conf
# 找到最后一行,并取消注释和添加:
[include]
files = /etc/supervisor/*.conf
$ mkdir /etc/supervisor
$ cd /etc/suervisor
$ vim mongodb.conf
# 填入以下内容:
[program:mongodb]
command = /usr/bin/mongod -port 27017 --dbpath /vr/lib/mongo(实际的命令)
autostart = true ; 在 supervisord 启动的时候也自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
5. 设置完成接下来就是启动的时刻了
$ supervisord -c /etc/supervisord.conf 此命令是启动个进程来监控其子进程(也就是我们的运行进程)
$ supervisorctl -c /etc/supervisord.conf status supervisorctl,是命令行管理工具,可以用来执行 stop、start、restart 等命令,来对这些子进程进行管理
现在正常的话你去把那个配置的进程杀死,然后你会发现会被重新拉起。
6. 然后我们配置可视化管理进程
$ vim /etc/supervisord.conf
# 取消注释和更改设置
[inet_http_server] ; HTTP 服务器,提供 web 管理界面
port=0.0.0.0:8080 ; Web 管理后台运行的 IP 和端口,如果开放到公网,需要注意安全性
username=user ; 登录管理后台的用户名
password=123 ; 登录管理后台的密码
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=http://0.0.0.0:8080 ; 通过 HTTP 的方式连接 supervisord
通过 url:8080 就能查看到界面
最后可以通过此界面对需要监控的程序执行 停止、重启、开启等动作。