Supervisor是一个客户端/服务器系统,允许其用户监视和控制类似UNIX的操作系统上的许多进程。
安装
1.supervisord是python的一个库可以直接用过pip来进行安装
pip install supervisor
2.如果没有pip可以在PyPi[https://pypi.org/project/supervisor/]上下载supervisord的安装包来进行手动安装
python setup.py install
配置
1.生成配置文件
在终端中输入echo_supervisord_conf
可以打印出配置文件的模板。
2.新建一个supervisord配置文件
echo_supervisord_conf > /etc/supervisord.conf
可以修改守护进程配置文件的路径为:/etc/supervisord/conf.d/*.conf
启动
1.初始化启动supervisord
supervisord -c /etc/supervisord.conf
2.supervisord常用命令
supervisorctl start #启动
supervisorctl stop #停止
supervisorctl status #查看状态
supervisorctl reload #重新加载守护进程配置文件
添加一个守护程序
1.创建守护文件配置
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设置开机自启
编辑服务配置文件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