supervisord相关知识整理转载

本篇文章属于转载,copy自这三篇文章,其中copy最多的是第三篇文章,我认为这篇讲的非常的详尽,解决了我的很多疑问

Supervisor重新加载配置启动新的进程
关闭 Supervisor 进程
使用 Supervisor 来管理 Redis 进程

一、添加好配置文件

supervisord -c /etc/supervisord.conf

二、更新新的配置到supervisord

supervisorctl update

三、重新启动配置中的所有程序

supervisorctl reload

四、启动某个进程(program_name=你配置中写的程序名称)

supervisorctl start program_name

五、查看正在守候的进程

supervisorctl

六、停止某一进程 (program_name=你配置中写的程序名称)

pervisorctl stop program_name

七、重启某一进程 (program_name=你配置中写的程序名称)

supervisorctl restart program_name

八、停止全部进程

supervisorctl stop all
注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。

停止 supervisord

supervisorctl shutdown

Supervisor 包括以下四个组件。

supervisord
服务端程序,主要功能是启动 supervisord 服务及其管理的子进程,记录日志,重启崩溃的子进程,等。

supervisorctl
命令行客户端程序,它提供一个类似 shell 的接口,通过 UNIX 域套接字或者 TCP 套接字并使用 XML_RPC 协议与 supervisord 进程进行数据通信。它的主要功能是管理(启动,关闭,重启,查看状态)子进程。

Web Server
实现在界面上管理进程,还能查看进程日志和清除日志。

XML-RPC 接口
可以通过 XML_RPC 协议对 supervisord 进行远程管理,达到和 supervisorctl 以及 Web Server 一样的管理功能

————————————————
版权声明:本文为CSDN博主「haozlee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lihao21/article/details/77689790

在这里插入图片描述
我们挑几个重要的进程状态来说明。

running:进程处于运行状态
starting:Supervisor 收到启动请求后,进程处于正在启动过程中
stopped:进程处于关闭状态
stopping:Supervisor 收到关闭请求后,进程处于正在关闭过程中
backoff:进程进入 starting 状态后,由于马上就退出导致没能进入 running 状态
fatal:进程没有正常启动
exited:进程从 running 状态退出

1. 为了将 Supervisor 的配置放置到独立的目录中,我们先创建目录:

cd /etc
mkdir supervisor

接着,可以继续使用echo_supervisord_conf命令,将 Supervisor 样例配置重定向输出到文件文件中:

echo_supervisord_conf > /etc/supervisor/supervisord.conf

这样,我们便生成了 Supervisor 的主配置文件supervisord.conf。

为了将 Supervisor 管理的进程配置与主配置文件区分开来,我们创建独立的目录来存放进程配置。

cd /etc/supervisor
mkdir conf.d

然后,修改主配置文件 supervisord.conf,添加以下配置,将 conf.d 目录下的进程配置引入 Supervisor 管理:

[include]
files = ./conf.d/*.ini

2. 创建管理进程

为方便测试 Supervisor 的功能,我们编写以下 Python 脚本,并保存为 hello.py。

import time
import sys
while True:
        print("hello\n")
        sys.stdout.flush()
        time.sleep(1)

3. 创建进程配置

为将 hello.py 脚本被 Supervisor 接管,我们在 /etc/supervisor/conf.d 目录创建其配置 hello.ini:

[program:hello]
command=python /home/lihao/codes/python/hello.py              
stdout_logfile=/home/lihao/codes/python/hello.log
stderr_logfile=/home/lihao/codes/python/hello_error.log

command:运行进程使用的命令
stdout_logfile:指定标准输出文件
stderr_logfile:标准错误输出文件

需要指出的是,被 Supervisor 管理的进程,不能使用 daemon 模式,而必须在前台运行,否则会报错

4. 运行 supervisord

由于我们需要使用指定目录下的 Supervisor 主配置文件,在运行 Supervisord 时,需要使用-c参数来指定主配置文件的路径:

supervisord -c /etc/supervisor/supervisord.conf

Supervisor Web 管理界面

如果需要开启 Web 管理界面功能,需要在supervisord.conf配置中添加以下配置:

[inet_http_server]
port=*:9001
username=user
password=123

然后,打开浏览器,输入地址 http://127.0.0.1:9001,这时,会弹出输入框,要求输入用户名和密码(用户名:user,密码:123),便可以进入 Supervisor 提供的进程管理界面。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值