Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。
因为supervisor依赖python,所以确保我们环境中装有python,接下来我看下这个工具的部署配置和使用方法
首先我们需要安装python和pip工具,我们本地操作系统是centos7
yum install -y python3 python3-pip
接着使用python的pip管理工具进行安装
pip3 install supervisor
接着生成supervisor默认配置文件
echo_supervisord_conf > /etc/supervisord.conf
接着我们就需要编辑这个配置文件了,这个文件内容又臭又长,我们不需要全部看一遍,直接修改我们需要的地方就行
找到[inet_http_server]这段,如果需要用页面来管理的话可以把这一段的注释打开
[inet_http_server] ; inet (TCP) server disabled by default port=0.0.0.0:9001 ; ip_address:port specifier, *:port for all iface username=admin ; default is no username (open server) password=admin ; default is no password (open server)
打开以后我们可以先启动看看效果
supervisord -c /etc/supervisord.conf
然后可以通过IP+9001访问这个页面了。
supervisorctl常用命令如下 supervisorctl shutdown # 关闭supervisord supervisorctl reload # 重新载入配置 supervisorctl update # 更新
管理supervisor的服务的常用命令如下
supervisorctl start [all|service_name] #启动所有/某个服务 supervisorctl stop [all|service_name] #停止所有/某个服务 supervisorctl status [|service_name] #查看所有/某个服务状态 supervisorctl restart [all|service_name] #重启所有/某个服务
刚才介绍完一些命令,接着我们再看如何将supervisor配置为系统服务
cat >/usr/lib/systemd/system/supervisord.service<<EOF [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf ExecStop=/usr/local/bin/supervisorctl shutdown ExecReload=/usr/local/bin/supervisorctl reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target EOF
配置supervisor开机启动,并启动该服务
systemctl enable supervisord systemctl start supervisord #如果需要停止可以使用以下命令 systemctl stop supervisord
后面有空,我们再学习下使用supervior配置来管理程序。