supervisord初体验

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

原文地址:https://www.cnblogs.com/Jaryer/p/13644552.html