supervisord初体验

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

启动


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

你可能感兴趣的:(linux,python)