ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

supervisor、supervisord、supervisorctl

2022-06-26 11:33:55  阅读:204  来源: 互联网

标签:supervisor supervisord default supervisorctl conf 进程


一、概念

 1、supervisor

  python语言编写的进程管理工具,分client和server端,它可以很方便的监听、启动、停止、重启一个或多个进程。

当一个进程意外被杀死,supervisor监听到进程死后,可以很方便的让进程自动恢复,不再需要程序员或系统管理员自己编写代码来控制。

supervisot能提供接口,可扩展功能,一个是event机制,再一个是xml_rpc,supervisor的web管理端和远程调用的时候,就要用到它了

 2、supervisord(server)

  supervisord是supervisor的服务端程序。运行supervisor时会启动一个进程supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启

干的活:启动supervisor程序自身,启动supervisor管理的子进程,响应来自clients的请求,重启闪退或异常退出的子进程,把子进程的stderr或stdout记录到日志文件中,生成和处理Event。

3、supervisorctl(client)

  supervisorctl 查看子进程状态,启动/停止/重启子进程,获取running子进程的列表等。最牛逼的一点是,supervisorctl不仅可以连接到本机上的supervisord,还可以连接到远程的supervisord,当然在本机上面是通过UNIX socket连接的,远程是通过TCP socket连接的。supervisorctl和supervisord之间的通信,是通过xml_rpc完成的。 相应的配置在[supervisorctl]块里面

命令含义
supervisorctl status 查看所有子进程服务状态
supervisorctl restart 重启所有子进程服务
supervisorctl restart name 重启子进程名字为name的服务
supervisorctl start name 开启子进程名字为name的服务
supervisorctl stop all 关闭所有子进程服务
supervisorctl stop name 停止子进程名字为name的服务
supervisorctl shutdown 关闭所有子进程服务
supervisorctl reload 重载配置文件,重启所有子进程服务
supervisorctl update 更新所有服务,一般用在添加新服务后
supervisorctl update name 更新子进程名字为name服务

4、 Web Server

  Web Server主要可以在界面上管理进程,Web Server其实是通过XML_RPC来实现的,可以向supervisor请求数据,也可以控制supervisor及子进程。配置在[inet_http_server]块里面

5、XML_RPC接口

  这个就是远程调用的,上面的supervisorctl和Web Server就是它弄的;

二、实操

1、安装

pip install supervisor

yum install epel-release 
yum install -y supervisor

2、配置文件

默认生成的可执行文件存放路径

whereis supervisord

whereis supervisorctl

whereis echo_supervisord_conf

案例

 tree /etc/supervisor/
/etc/supervisor/
├── conf.d  ##被管理的进程服务配置文件
│   ├── alertmanager.conf
│   ├── mqdb.conf
│   ├── node_exporter.conf
│   └── prometheus.conf
└── supervisord.conf  ## 主配置文件

cat  supervisord.conf

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                      ; sockef file mode (default 0700)

[inet_http_server]                                           ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)

[supervisord]
user=root                                            ; setuid to this UNIX account at startup; recommended if root
logfile=/var/log/supervisor/supervisord.log          ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid                     ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor                      ; ('AUTO' child log dir, default $TEMP)
logfile_maxbytes=1024MB                              ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10                                   ; (num of main logfile rotation backups;default 10)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
history_file=/etc/supervisor/history.log  ; use readline history if available
prompt=mqdb1.internal.moqi.ai           ; cmd line prompt (default "supervisor")
minfds=65535                              ; (min. avail startup file descriptors;default 1024)

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

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

  

 

 

 

 

 supervisor简介_学无止境gwx的博客-CSDN博客_supervisor是什么

 

 

 

 

 

 

 

 

 

 

 

 

运维技术之一、supervisorctl 守护进程的安装和使用_weixin_34319817的博客-CSDN博客

supervisorctl命令的使用_惟肖肖肖的博客-CSDN博客_supervisorctl

标签:supervisor,supervisord,default,supervisorctl,conf,进程
来源: https://www.cnblogs.com/dgp-zjz/p/16411847.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有