Supervisor使用简介

Supervisor是一款用Python开发的客户端/服务器系统,用于管理和监控类UNIX操作系统上的进程。它包括supervisord服务端,负责管理子进程及日志输出;supervisorctl客户端,用于获取子进程状态。本文介绍如何安装Supervisor、生成配置文件、添加待管理进程信息,并通过命令行进行进程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Supervisor简介

  Supervisor是一个 Python 开发的client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程。它可以同时启动,关闭多个进程,使用起来特别的方便。supervisor 主要由两部分组成:

1supervisord(server 部分

主要负责管理子进程,响应客户端命令以及日志的输出等;它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启。

2supervisorctl(client 部分

命令行客户端,用户可以通过它与supervisord 进程联系,获取子进程的状态等。

 

2.Supervisor的安装和使用

1)Supervisor的安装

pip install supervisor

2)Supervisord的配置生成

安装了supervisor之后,可以使用echo_supervisord_conf工具来生成supervisord的默认配置,具体方法是:

echo_supervisord_conf > supervisord.conf。然后修改supervisord.conf配置文件,添加需要让Supervisor管理的的子进程的信息,例如子进程的启动命令、是否在子进程崩溃时帮其自动重启。例如在supervisord.conf中添加一个celeryd的服务:

[program:celeryd]
command=celery worker--app=task -l info ; 启动命令
stdout_logfile=/var/log/supervisor/celeryd_out.log; stdout 日志输出位置
stderr_logfile=/var/log/supervisor/celeryd_err.log; stderr 日志输出位置
autostart=true; 在 supervisord 启动的时候自动启动
autorestart=true ;程序异常退出后自动重启
startsecs=10; 启动 10 秒后没有异常退出,就当作已经正常启动

3)启动Supervisord服务器进程

supervisord -c supervisord.conf

4)使用supervisorctl客户端来操作被supervisor管理的子进程

supervisorctl stop/start/restart xxx  #停止/启动/重启某一个进程xxx
supervisorctl reread  #只载入最新的配置文件, 并不重启任何进程
supervisorctl reload  #载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程
supervisorctl update  #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

 

学习资料参考于:

http://liuzxc.github.io/blog/supervisor/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值