supervisor后台进程管理工具使用笔记

372次阅读次阅读
一条评论

官网介绍:http://supervisord.org/introduction.html

对我来说,这只是一个在我晚上睡觉的时候!不会因为服务挂掉被喊起来紧急处理的工具,因为supervisor会自动重启进程。

安装setuptools

wget https://bootstrap.pypa.io/ez_setup.py | sudo python

使用easy_install安装supervisor

easy_install supervisor

supervisor安装完成后会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于和守护进程通信,发送管理进程的指令)、生成初始配置文件程序。

配置supervisor

supervisor详细的配置及说明参考 官网文档

运行supervisord服务的时候,需要指定supervisor配置文件,如果没有使用-c参数指定,默认在以下目录查找:

../etc/supervisord.conf (Relative to the executable)
../supervisord.conf (Relative to the executable)
$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf
/etc/supervisor/supervisord.conf (since Supervisor 3.3.0)

通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件(目录看自己喜好)

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

生成配置文件后编辑查看,每条参数后面都会有一句说明,很详细,自行翻译一下就好了 ,; 号代表注释

配置文件把最后两行的include模块放开即可(其实也可以直接在该配置文件中设置管理进程的配置参数,但是需要管理的进程比较多的话容易乱,不建议),其他配置基本无需改动(看自己需求)

[include]
files = /etc/supervisor/conf.d/*.ini   ;读取/etc/supervisor/conf.d目录下所有.ini配置文件

测试supervisor

添加一个测试进程

vi /etc/supervisor/conf.d/test.ini
#test为项目名    
[program:test]
#脚本执行目录
directory=/etc/supervisor/conf.d
#执行命令
command=/bin/bash test.sh
#日志输出
stdout_logfile=/root/test.out
#supervisor启动的时候是否随着同时启动,默认True
autostart=true
#当程序退出时是否自动启动,false不启动,true自动启动,默认unexpected
autorestart=true
#这个选项是子进程启动多少秒之后,此时状态如果是running,则我们认为启动成功了。默认值为1
startsecs=5
#优先级,默认999
priority=1

test.sh脚本内容为

#!/bin/bash
date
sleep 20
exit 0

启动supervisord

supervisord -c /etc/supervisor/supervisord.conf

supervisorctl status查看进程状态,我设置的启动后五秒状态为running,所以会有五秒状态为starting,但是可以从uptime时间看出脚本是从20秒自动停止后,supervisor秒级执行了启动test项目

supervisor后台进程管理工具使用笔记

更新新的配置

supervisorctl update
2
admin
版权声明:本站原创文章,由admin2020-11-04发表,共计3494字。
转载提示:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(一条评论)
载入中...
admin 博主
2020-11-04 11:51:03 回复

有问题请评论,接受意见和指点