python系列之supervisor进程管理

背景

当我们在linux环境下进行开发时,很多时候我们需要在后台运行python的脚本,比较通用的方式是nohup命令结合&可以实现程序的后台运行,但是这种方式有两个缺点,一是对于大型项目的维护是很不友好的,无法进行统一的管理。二是该种方式无法自动重启进程。Supervisor可以很好的解决以上的问题。

初识supervisor

supervisor介绍

supervisor是用python开发的一款用于linux操作系统的进程管理工具,supervisor可以高效地实现对进程状态的监控及统一管理。

supervisor组成

supervisor分为supervisord(服务端)和supervisorctl(客户端)两部分。
supervisord作为服务端负责所有的注册进程的启动及监控,出现崩溃的服务时会自动重启。
supervisorctl是客户端,可以实现对子进程的管理,如启动、停止、重启等。

supervisor的使用

安装

pip install supervisor

配置文件

使用echo_supervisord_conf > /etc/supervisord.conf生成配置文件到指定路径
配置文件中一个program代表一个进程,如下是关键配置:
[program:program_name]         # 进程名
command=python3 /home/aaaa/bbbb/task.py   # 启动命令
注意program_name是唯一的,用于区分进程

配置文件实例

[program:MQtask]
command=python3 /home/task.py
process_name=%(program_name)s
stdout_logfile=/home/task.log
stderr_logfile=/home/task.log

导入外部配置文件

可以使用引入外部配置的方式方便管理多个进程,将所有的进程进程配置放在supervisord.d目录中。

[include]
files = /etc/supervisord.d/*.conf

supervisor启动

使用supervisord启用并指定配置文件位置

supervisord -c /etc/supervisor.conf

supervisorctl的使用

supervisorctl可以管理supervisord的进程,命令如下:

supervisorctl status                         # 查看进程状态
supervisorctl start program_name               # 启动program_name进程
supervisorctl stop program_name               # 终止program_name进程
supervisorctl restart program_name            # 重启program_name进程
supervisorctl reread                         # 更新配置,根据最新的配置启动所有程序
supervisorctl update                         # 更新配置,重启配置有变化的进程
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值