一文了解supervisor,从安装到部署

Supervisor是一个Python开发的进程管理工具,能够将命令行进程转为后台daemon并监控其状态。在进程异常退出时,Supervisor会自动重启,提供子进程状态监控、异常重启和集中式管理功能。安装后,通过配置文件管理多个进程,支持自动启动和日志管理。常用命令包括启动、停止、重启和更新进程。适用于本地或云服务器的小项目管理,但在生产环境中常与K8s等容器化部署方案结合使用。
摘要由CSDN通过智能技术生成

工具使用场景:唐丁在实际中经常会需要在linux端长时间启动某个项目或者希望某个项目在开机后自动启动,并且能够在出现异常的情况下自动重启。

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
简而言之,相对于linux的systemctl等进程管理工具的好处有以下几点:
1、可以准确获取被管理的子进程的状态;
2、子进程出现异常情况会自动重启;
3、可以按组进行集中式管理
安装

# centos
yum install supervisor
# pip
pip install supervisor

以yum安装为例,执行以上安装命令后在/etc目录下会生成supervisord.conf,这是supervisor的配置文件,同时在/usr/bin目录下出现supervisord和supervisorctl。supervisord是supervisor的服务端程序,supervisorctl是客户端程序。

配置文件

//上面的配置文件默认生成的一般就可以使用了,简单说一下这个include
// 这个东西挺有用的,当我们要管理的进程很多的时候,写在一个文件里面就有点大了。我们
// 以把配置信息写到多个文件中,然后include过来
[include]
files=relative/directory/*.ini

将需要管理的进程写进.ini文件中,格式如下

[program:donding-api]
directory = /opt/donding
command = /usr/local/bin/gunicorn --config ./conf/gunicorn.conf.py donding.wsgi:application
stopasgroup = true
killasgroup = true
autostart = true
startsecs = 3
autorestart = true
startretries = 3
user = root
redirect_stderr = true
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 3
stdout_logfile = /var/log/supervisord-donding-api.log

然后执行以下命令启动

supervisord
supervisorctl reload

项目运行情况如下图

在这里插入图片描述

supervisorctl常用命令

supervisorctl status        //查看所有进程的状态
supervisorctl stop es       //停止es
supervisorctl start es      //启动es
supervisorctl restart       //重启es
supervisorctl update        //配置文件修改后使用该命令加载新的配置
supervisorctl reload        //重新启动配置中的所有程序
注:把es换成all可以管理配置中的所有进程。直接输入supervisorctl进入supervisorctl的shell交互界面,此时上面的命令不带supervisorctl可直接使用。

这个工具非常适合在本地虚拟机或者在云服务器上管理自己的一些小项目。在实际的生产环境中目前都采用了K8s,在集群中进行容器化部署。这块后面唐丁会专门进行讲解。感谢大家关注唐丁,后面再见~~
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员唐丁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值