Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的许多进程。
安装
使用pip进行安装
supervisord是python的一个库可以直接用过pip来进行安装
pip install supervisor
手动安装
如果没有pip可以在PyPi上下载supervisord的安装包来进行手动安装
python setup.py install
配置
创建配置文件
在终端中输入echo_supervisord_conf
可以打印出配置文件的模板。
新建一个supervisord配置文件
echo_supervisord_conf > /etc/supervisord.conf
启动
初始化启动supervisord
supervisord -c /etc/supervisord.conf
supervisord常用命令
supervisorctl start #启动
supervisorctl stop #停止
supervisorctl status #查看状态
supervisorctl reload #重新加载守护进程配置文件
添加一个守护程序
创建守护文件配置
mkdir /etc/supervisord/conf.d
vim test.conf
在配置文件中添加:
[program:public_monitor]
process_name=monitor
command=/usr/bin/python3 /home/kafka/monitor.py
autostart=true
startsecs=10 ;启动10秒没有异常退出则表示正常运行
autorestart=true ;程序退出后自动重启
startretries=3 ;启动失败重试次数,默认是3
user=root
redirect_stderr=true
stderr_logfile=/var/log/supervisor/monitor/progress.err.log
stdout_logfile=/var/log/supervisor/monitor/progress.out.log
stopsignal=INT
重载配置文件
supervisoctl reload
然后查看supervisord的状态
supervisoctl status
可以看到现在有一个 守护程序正在运行
将supervisord设置开机自启
编辑服务配置文件
vim supervisord.service
在服务配置文件中添加以下内容
#supervisord.service
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
将文件拷贝到/usr/lib/systemd/system/
``
centos:
cp supervisord.service /usr/lib/systemd/system/
ubuntu:
cp supervisord.service /lib/systemd/system/
启动服务
systemctl enable supervisord
验证一下是否为开机启动
systemctl is-enabled supervisord