一、简介:
supervisor是一个用python语言编写的进程管理工具,它可以很方便地监听、启动、停止、重启一个或多个进程。当一个进程意外被杀死,supervisor监听到进程死后,可以很方便地让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。
二、supervisor的三个重要命令:
- supervisord : 服务端, 运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启
- supervisorctl : 客户端, supervisorctl是命令行管理工具,可以用下面命令来进行子进程的管理 , supervisorctl start|status|stop|restartm 的进程名字
- echo_supervisord_conf : 用来生成默认的配置文件,一般生成默认文件为 supervisor.conf
三、部署:
1、将安装包上传到机器上:
rz supervisor-3.3.4.tar.gz
rz meld3-1.0.2.tar.gz //依赖包
rz setuptools-45.0.0.zip //依赖包
2、安装setuptools:
unzip setuptools-45.0.0.zip
unzip setuptools-45.0.0
python setup.py install
3、安装meld:
tar xf meld3-1.0.2.tar.gz
cd meld3-1.0.2
python setup.py install
4、安装supervisor:
tar xf supervisor-3.3.4.tar.gz
cd supervisor-3.3.4
python setup.py install
5、创建必要目录和文件:
mkdir -p /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf //生成配置文件
6、可更改的路径位置:
#注意:如果前面有用分号";"注释,需要先去掉分号才可以
[unix_http_server]
file=/tmp/supervisor.sock //自定义路径,也可默认
[supervisord]
logfile=/tmp/supervisord.log
pidfile=/tmp/supervisord.pid
[include]
files = etc/supervisor/conf.d/*.ini //可自定义
7、编写服务启动文件:
vim /lib/systemd/system/supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
8、执行命令启动supervisord:
systemctl start supervisord