进程管理工具之Supervisor
itomcoil 2025-01-03 16:31 20 浏览
相关介绍
Supervisor是用Python 开发的一个client/server服务,是 Linux /Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能,不再需要自己写shell脚本来控制。
二、安装部署配置
1、安装
Supervisort是基于python开发的,需要检测系统是否具有python2.4以上的版本。一般centos7的系统都是基于python2.7以上了。
①检测环境
# 查看python版本
python --version
# 配置epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 安装pip包管理工具
yum install python-pip -y
# 默认pip源过国外速度感人,故也切换为国内aliyuan源
mkdir ~/.pip
vim ~/.pip/pip.conf
# 添加以下内容
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
②安装supervisor
pip install supervisor
配置介绍
Supervisor 相当强?,提供了了很丰富的功能,不过我们可能只需要?到其中?小部分。安装完成之后,可以编写配置?文件,来满足自己的需求。
为了方便管理配置信息,我们把配置分成两部分:
supervisor 是?个 C/S 模型的程序,supervisord是server 端,supervisorctl是对应的client端。及其应用程序(即我们要管理的程序)。
首先来看supervisord 的配置文件。安装完supervisor之后,可以运行echo_supervisord_conf 命令输出默认的配置项,也可以重定向到?个配置文件里:
# 创建配置文件目录
mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
# 打开设置子配置文件选项
vim /etc/supervisor/supervisord.conf
# 添加以下内容
[include]
files = /etc/supervisor/config.d/*.ini
子配置文件
# 根据主配置文件里设置的子配置文件路径建立目录
mkdir /etc/supervisor/config.d
# 建立一个配置文件
vim /etc/supervisor/config.d/test.ini
# 添加以下内容
#项目名称
[program:test]
# 项目根目录
directory=/root
# 启动执行命令
command=/root/test.sh
stderr_logfile=/tmp/test_stderr.log
stdout_logfile=/tmp/test_stdout.log
三、案例测试使用
1、配置执行命令脚本
①脚本内容
vim /root/test.sh
# 内容为
#!/bin/bash
while true
do
echo `date`
sleep 10
done
# 赋予执行权限
chmod +x test.sh
②启动supervisor
supervisord -c /etc/supervisor/supervisord.conf
查看日志
脚本执行,并标准输出到对应设置的日志文件中
测试终止进程
通过以上操作,可以看到supervisor可以进行进程的管理,当托管进程意外关闭后,也会重启托管的进程。一定程度上实现了,守护进程的高可用。
web页面开启
①修改配置文件
vim /etc/supervisor/supervisord.conf
②重启服务
supervisorctl reload
③访问查看
可以通过web管理界面,对于托管的进行管理操作
相关推荐
- 解锁WPS神秘函数:FACTDOUBLE,你真的会用吗?
-
函数界的隐藏高手:FACTDOUBLE在WPS的函数大家庭中,FACTDOUBLE函数就像是一位低调的武林高手,虽然不像SUM(求和)、VLOOKUP(数据查找)等函数那般被频繁使用、广为人知...
- 24点纸牌第一期:2 5 10 10(纸牌24点游戏大全)
-
24点纸牌数学游戏是一种益智游戏,一般随机抽4张牌,通过基本的加、减、乘、除四则运算,计算出结果为24。需要强调两点是:1.随机抽4张牌;2.只能用基本的加、减、乘、除四则运算,不能用高阶算法比如开根...
- 纯纯的干货知识,十二生肖的雅号,你知道多少呢
-
今天给大家分享古人对于十二生肖的雅号的理解,学着这些知识,不仅仅能够提高品味还能让自己的知识库提升一个阶乘,何尝不是一件美妙的事情呢,感兴趣的点个赞哦。1.子鼠:社君,是老鼠在古代的尊称,因为古人认为...
- 常见的10种算法(常见的10种算法有哪些)
-
常见的10种算法数据结构研究的内容:就是如何按一定的逻辑结构,把数据组织起来,并选择适当的存储表示方法把逻辑结构组织好的数据存储到计算机的存储器里。算法研究的目的是为了更有效的处理数据,提高数据运算效...
- 24点趣味多,4张最多凑法(超20)的牌(1,2,3,4)
-
1、2、3、4凑24点的趣味性:数学游戏的“黄金组合”这四张看似普通的数字牌,却被称为24点游戏的“魔法牌组”——解法多样、规则灵活,甚至能让人感受到数学的创造力和游戏化的惊喜。以下是它的独特趣味所...
- 语言EI会议!速投指南(ei会议中文)
-
【推荐会议】会议名称:IEEEInternationalConferenceonNaturalLanguageProcessingandKnowledgeEngineering(N...
- ### **零代码入门:如何用AutoML快速构建测试模型**
-
---**——基于GoogleAutoML与TeachableMachine的实战指南**---####**引言:AutoML如何赋能黑盒测试?**作为黑盒测试工程师,我们的核心任务是验证软件功...
- 电子通信类EI新人友好刊!(电子通信学报)
-
期刊推荐电子通信领域新人友好期刊:《IEEECommunicationsLetters》-刊号:ISSN1089-7798|CN(国内无独立刊号)-影响因子:最新影响因子为3.5(JCR...
- 「数字化」机器学习可轻松处理繁琐的压裂数据
-
机器学习技术可准确高效地识别出压裂曲线中的数据节点,帮助工程师们处理繁琐的压裂数据。编译丨TOM影子在水力压裂作业期间,每隔一秒就会记录泵送数据,并将之传输到现场,以csv格式保存。原始泵送数据中包...
- 基于计算机视觉的棋盘图像识别(基于计算机视觉的棋盘图像识别工具)
-
本期我们将一起学习如何使用计算机视觉技术识别棋子及其在棋盘上的位置我们利用计算机视觉技术和卷积神经网络(CNN)为这个项目创建分类算法,并确定棋子在棋盘上的位置。最终的应用程序会保存整个图像并可视化的...
- 如何利用DeepSeek高效完成论文写作:从选题到答辩全流程指南-下
-
5.数据分析与结果解释在实验部分,你需要分析数据并解释结果。你可以向DeepSeek提问:提问示例“如何分析实验数据并解释结果?”DeepSeek的回答“你可以使用准确率、召回率和F1分数等指标评估...
- 遥感领域!EI会议审稿周期实测!(2020年遥感国际会议)
-
推荐高质量遥感EI会议:ICRSE2025会议名称:国际遥感与环境大会会议编号:#12789截稿时间:2025年3月20日召开时间/地点:2025年6月15-17日·新加坡国立大学论...
- 遥感EI会议·选刊密码!(遥感学术)
-
【优质遥感EI会议推荐】会议名称:InternationalConferenceonRemoteSensingandGeoinformatics(ICRSG)会议编号:Conferenc...
- 使用BERT进行中文情感分析教程(bert 教程)
-
以下是使用BERT进行中文情感分析的步骤详解和示例代码:1.环境准备安装所需库:bashpipinstalltransformerstorchpandassklearn2.数据准备准备C...
- 遥感测绘方向:EI会议避坑清单!(测绘遥感信息)
-
推荐高性价比EI会议国际遥感技术与应用研讨会(ICRTA2025)会议号:#12345截稿日期:2025年4月30日召开时间:2025年8月15-17日举办地点:新加坡论文集出版:Spr...
- 一周热门
- 最近发表
- 标签列表
-
- ps像素和厘米换算 (32)
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)