进程管理工具Supervisor

简介

Supervisor是一个客户端/服务器系统,允许用户在类UNIX操作系统上控制许多进程。它是基于python语言开发一个进程管理工具。
Supervisor的服务器端称为supervisord,主要负责在启动自身时启动管理的子进程,响应客户端的命令,重启崩溃或退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。可以在一个配置文件中配置相关参数,包括Supervisord自身的状态,其 管理的各个子进程的相关属性。配置文件一般位于/etc/supervisord.conf。
Supervisor的客户端称为supervisorctl,它提供了一个类shell的接口(即命令行)来使用supervisord服务端提供的功 能。通过supervisorctl,用户可以连接到supervisord服务器进程,获得服务器进程控制的子进程的状态,启动和停止子进程,获得正在 运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务端进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务器位 于同一台机器上时,客户端与服务器共用同一个配置文件/etc/supervisord.conf,通过不同标签来区分两者的配置。
Supervisor也提供了一个web页面来查看和管理进程状态,这个功能用得人比较少。
官方网站:http://supervisord.org
在这里插入图片描述

安装环境准备

系统环境
[root@node2 ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@node2 ~]# uname -r
3.10.0-1062.4.1.el7.x86_64
[root@node2 ~]# python --version
Python 2.7.5

平台要求
Supervisor可以运行在大多数Unix系统上,但不支持在Windows系统上运行。
Supervisor需要Python2.4及以上版本,但任何Python 3版本都不支持。

安装Supervisor服务

安装easy_install
[root@nginx ~]# yum install python-setuptools-devel -y

安装supervisor
easy_install supervisor
supervisor安装完成后会生成三个执行程序:
supervisortd
#supervisor的守护进程服务(用于接收进程管理命令)
supervisorctl
#客户端(用于和守护进程通信,发送管理进程的指令)
echo_supervisord_conf
#生成初始配置文件程序
创建配置文件
一般可以通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
[root@ ~]# ll /etc/supervisor/supervisord.conf
-rw-r–r-- 1 root root 9710 Jan 24 15:10 /etc/supervisor/supervisord.conf

启动命令
supervisord -c /etc/supervisor/supervisord.conf

查看是否正常启动
[root@node2 /]# ps -ef | grep supervisor
root 6370 1 0 01:11 ? 00:00:00 /usr/bin/python /usr/bin/su
pervisord -c /etc/supervisor/supervisord.conf

ll /etc/supervisor/supervisord.conf

配置文件参数介绍

unix_http_server]
file=/tmp/supervisor.sock ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700 ;socket文件的mode,默认是0700
;chown=nobody:nogroup ;socket文件的owner,格式:uid:gid
;[inet_http_server] ;HTTP服务器,提供web管理界面
;port=127.0.0.1:9001
;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user ;登录管理后台的用户名
;password=123 ;登录管理后台的密码
[supervisord]
logfile=/tmp/supervisord.log
;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB
;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10 ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024 ;可以打开的文件描述符的最小值,默认 1024
minprocs=200 ;可以打开的进程数的最小值,默认 200
[supervisorctl]
serverurl=unix:///tmp/supervisor.sock
;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001
; 通过HTTP的方式连接supervisord
[program:xx]
; [program:xx]是被管理的进程配置参数,xx是进程的名称
command=/opt/tomcat/bin/catalina.sh run
; 程序启动命令
autostart=true ; 在supervisord启动的时候也自动启动
startsecs=10 ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3 ; 启动失败自动重试次数,默认是3
user=tomcat ; 用哪个用户启动进程,默认是root
priority=999 ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false
;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false
;默认为false,向进程组发送kill信号,包括子进程
[include] ;包含其它配置文件
files = relative/directory/*.ini
;可以指定一个或多个以.ini结束的配置文件
注:配置文件中;是注释

常用命令介绍

supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动、停止、重启。运行supervisorctl命令,不加参数,会进入supervisor客户端的交互终端,并会列出当前所管理的所有进程。

 supervisorctl 
supervisor> help
default commands (type help <topic>):
=====================================
add  clear  fg  open  quit  remove  restart  start  stop  update 
avail exit maintail  pid  reload  reread  shutdown status tail version

可以通过help命令查看相关命令的使用及参数

配置管理进程

下面是配置Tomcat进程的一个例子:
[program:tomcat]
command=/usr/local/tomcat/bin/catalina.sh run
stdout_logfile=/usr/local/tomcat/logs/catalina.out
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true
配置完成后,启动服务
supervisord -c /etc/supervisor/supervisord.conf
启动后需要执行下面的操作来更新配置文件
[root@ ~]# supervisorctl update
[root@ ~]# supervisorctl status

终端的命令
supervisorctl status
supervisorctl stop tomcat
supervisorctl start tomcat
supervisorctl restart tomcat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/351190.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Supervisor 进程管理

一、简介 supervisor 是一个Python开发的、通用的进程管理程序。当程序中断时&#xff0c;supervisor能自动重启它&#xff0c;不再需要程序员或系统管理员自己编写代码来控制。 supervisor要求管理程序是非daemon程序&#xff0c;supervisor会把程序转成daemon程序&#xff0…

电脑技巧:进程管理工具Process Explorer介绍

目录 1、介绍 2、常用功能介绍 2.1 替代微软自带的任务管理器 2.2 查看当前系统中运行的进程 2.3 查看进程的详细信息 2.4 检索进程 2.5 监控操作系统的性能指标 2.6 获取Dump文件 2.7 进程操作功能 今天给大家推荐一款非常强大的进程管理工具Process Explorer&#xff0c;感兴…

进程管理工具

目录 一、进程管理工具(Supervisor) 简介 二、Supervisor安装与配置 介绍Supervisor 一、进程管理工具(Supervisor) 简介 Supervisor是用Python开发的一个client/server服务&#xff0c;是Linux/Unix系统下的一个进程管理工具&#xff0c;不支持Windows系统。它可以很方便的…

QLoRA:量化 LLM 的高效微调

此 repo 支持论文“QLoRA&#xff1a;量化 LLM 的高效微调”&#xff0c;旨在使对 LLM 研究的访问民主化。 QLoRA 使用bitsandbytes进行量化&#xff0c;并与 Hugging Face 的PEFT和transformers库集成。QLoRA 由华盛顿大学 UW NLP 小组的成员开发。 概述 我们介绍了 QLoRA&…

访问学者申请中4个难点解析

近年来&#xff0c;越来越多的学者希望通过申请成为访问学者来扩展他们的研究领域和学术交流。然而&#xff0c;访问学者申请过程中存在一些难点&#xff0c;下面知识人网来解析其中的4个难点。 首先&#xff0c;第一个难点是选择适合的研究机构。访问学者需要仔细考虑自己的研…

Fiddler抓包工具之高级工具栏中的Inspectors的使用

高级工具栏中的Inspectors的使用 Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片&#xff0c;HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合http标准的请求和响应头。Cookies标签可以看到…

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一&#xff0c;如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中&#xff0c;“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

win10系统怎么安装显卡驱动,驱动人生详细教程

驱动人生的用户跟小编咨询说&#xff0c;windows10系统要怎么安装显卡驱动?或者win10怎样安装网卡驱动、声卡驱动等等驱动程序 其实是很简单的&#xff0c;下面小编在这里给大家介绍一下用驱动人生安装显卡驱动的具体步骤 1、打开**驱动人生**选择设备管理器&#xff0c;然后…

驱动人生解决“检测到你的驱动版本比较低”的问题

有驱动人生用户反应在电脑上用模拟器玩阴阳师游戏的时候被提示“检测到你的驱动版本比较低”&#xff0c;造成这个情况可能是电脑驱动没有更新或电脑没有达到阴阳师游戏的最低配置&#xff0c;驱动人生建议按照以下方法解决。 一&#xff1a;驱动没有更新的解决方案 驱动没有…

电脑显卡驱动错误代码43怎么办?驱动人生解决方案

如果驱动人生8全面诊断提示显卡代码43&#xff0c;那就可能意味着这个显卡有质量问题。因为显卡代码43至少90%以上概率都是显卡物理性坏了。 如果你想解决显卡代码43问题&#xff0c;建议按照驱动人生的解决方案一个一个去尝试看看能不能解决。本文有点长&#xff0c;请耐心看…

驱动人生2014 v6.0.9.70 绿色版

驱动人生2014 v6.0.9.70 绿色版 软件大小&#xff1a;16.5MB 软件语言&#xff1a;简体中文 软件性质&#xff1a;常用软件 软件授权&#xff1a;绿色版 更新时间&#xff1a;2014-04-02 应用平台&#xff1a;/Win8/Win7/WinXP 驱动人生2014是一款电脑硬件驱动管理软件&a…

蓝牙规范系列--经典蓝牙概述(第一篇)

一、目的 从本篇开始介绍经典蓝牙的基础知识&#xff0c;内容较多故会分成多篇进行介绍。 经典蓝牙&#xff08;BR/EBR&#xff09;射频&#xff08;物理层PHY&#xff09;工作在免授权的2.4G ISM频段&#xff08;2400 - 2483.5 MHz&#xff09;&#xff0c;使用跳频技术来对抗…

驱动人生8全新升级,开启2021全面时代

驱动人生8将在4月14日全新升级&#xff0c;开启全面时代! 驱动人生8此次更新将为游戏用户带来更加精准的解决方案。      不仅如此&#xff0c;更是将声卡等一系列电脑问题一网打尽&#xff0c;可谓是全球独有的解决方案! 驱动人生8新的全面诊断功能&#xff0c;可自动化…

驱动人生提供win11安装Google Play商店详细教程

据驱动人生消息道&#xff1a;微软目前已经开始在Win11的测试渠道推送安卓子系统&#xff0c;以让Win11兼容安卓App。 当前&#xff0c;Win11中安卓App的官方分发渠道是亚马逊应用商店&#xff0c;但用户也可以通过SideLoad侧载安卓APK。 但目前&#xff0c;开发者们又发现了…

电脑卡死、死机、黑屏怎么办?驱动人生教你如何解决

驱动人生收到一些用户留言&#xff0c;电脑卡屏死机黑屏怎么解决? 有人会遇到电脑经常死机&#xff0c;但是又是个电脑小白&#xff0c;处理起来就显得较为吃力。 对于卡屏死机&#xff0c;我们最常应对的方法便是“重启”! 但除此之外&#xff0c;我们还有什么其他办法能解…

如何零基础自学网络安全?

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了. 2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发. 3.有时多 google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答. 4.遇到实在搞不懂的,可以先放放,以后再来解…

Pb协议的接口测试

【摘要】 Protocol Buffers 是谷歌开源的序列化与反序列化框架。它与语言无关、平台无关、具有可扩展的机制。用于序列化结构化数据&#xff0c;此工具对标 XML &#xff0c;支持自动编码&#xff0c;解码。比 XML 性能好&#xff0c;且数据易于解析。更多有关工具的介绍可参考…

nopi 缩小字体填充_我在超市里改字体

- 今天&#xff0c;2020年第一天&#xff0c;送篇字体教程给大家&#xff0c;让大家在学习中拥抱这新的一年&#xff0c;嗯&#xff0c;我们就是这么贴心呢&#xff01; 这次主题是《我在超市改字体》,前段时间&#xff0c;我带工作室小伙伴们去楼下超市拍了一些产品包装上的图…

可扩展性与生态应用:Ardor公链AMA回顾

近日&#xff0c;Jelurida团队工程师Francisco Sarrias做客CryptoWallet.com&#xff0c;分享了一些有关Ardor的话题&#xff1a; Ardor是什么&#xff1f; Ardor是一个旨在提高区块链可扩展性的开源平台&#xff0c;这意味着该项目有助于使区块链网络运行更顺畅&#xff0c;用…

100天精通Golang(基础入门篇)——第1天:学习Go语言基本概念

&#x1f337; 博主 libin9iOak带您 Go to Golang Language.✨ &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &#x1f30a; 《I…