使用supervisor管理进程

news2024/12/26 11:42:08

写目录

  • 一、supervisor简介
  • 二 、supervisor安装
    • 2.1下载supervisor
    • 2.2配置文件详解
    • 2.3把squid服务加入到supervisor管理当中

一、supervisor简介

  • supervisor是Python开发的c/s服务,是Linux系统下的进程管理工具。
  • 可以监听、启动、停止、重启一个或多个进程
  • 用supervisor管理的进程,当一个进程意外被杀死,supervisor监听到进程死后,会自动将它重启,很方便的做到进程的自动恢复的功能,不在需要自己写脚本来控制

二 、supervisor安装

2.1下载supervisor

yum install -y epel-release
yum install -y supervisor
  • 使用yum安装的supervisor会在/etc/会生成一个supervisor.conf文件及一个supervisor.d文件目录

2.2配置文件详解

vim /etc/supervisor.conf
[unix_http_server]
file=/var/run/supervisor.sock    ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700                      ;socket文件的mode,默认是0700
chmod=0766                       
;chown=nobody:nogroup            ;socket文件的owner,格式:uid:gid
							     
;[inet_http_server]              ;HTTP服务器,提供web管理界面
;port=0.0.0.0:9001               ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user                   ;登录管理后台的用户名
;password=123                    ;登录管理后台的密码

[supervisord]
logfile=/var/log/supervisord.log    ;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB               ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10                  ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info                       ;日志级别,默认info,其它: debug,warn,trace
pidfile=/var/run/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]是被管理的进程配置参数,xx是进程的名称
[program:tomcat]
command=/usr/local/apache-tomcat-8.0.35/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=200MB    ;stdout 日志文件大小,默认50MB
stdout_logfile_backups=20        ;stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/var/log/supervisor/logs/catalina.out
stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程

;包含其它配置文件
[include]
# files = /etc/supervisord.d/*.ini    ;可以指定一个或多个以.ini结束的配置文件
files = /etc/supervisord.d/*.conf     ;也可以写成以.conf结尾的配置文件

2.3把squid服务加入到supervisor管理当中

#在第六行插入
chmod=0766  
#在第131行插入
files = /etc/supervisord.d/*.conf 

在这里插入图片描述
在这里插入图片描述
配置进程管理配置

[program:squid]
command=/usr/local/squid/sbin/squid -N -d1
stdout_logfile=/var/log/supervisor/logs/run.log
stderr_logfile=/var/log/supervisor/logs/error.log
autostart=true
startsecs=10
autorestart=true
startretries=3
user=squid
priority=998
redirect_stderr=true
stdout_logfile_maxbytes=200MB
stdout_logfile_backups=20
stopasgroup=true
killasgroup=true
redirect_stderr=true
  • supervisor不能监控后台进程,command不能为后台运行命令

先启动supervisor服务,在使用supervisor服务启动squdi服务

supervisor服务启动
mkdir -p /var/log/supervisor/logs

systemctl start supervisord
systemctl enable supervisord
#-c检查配置文件
supervisord -c /etc/supervisor.conf
supervisorctl start squid

在这里插入图片描述
supervisor常用命令

## supervisorctl是supervisord的命令行工具
- supervisorctl status           查看所有进程的状态
- supervisorctl stop <name>      停止进程
- supervisorctl start <name>     启动进程
- supervisorctl restart <name>   重启进程
- supervisorctl update           配置文件修改后可以使用该命令加载新的配置
- supervisorctl reload           重新启动配置中的所有程序

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

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

相关文章

卡尔曼滤波原理和使用

随着传感技术&#xff0c;机器人&#xff0c;自动驾驶等不断发展&#xff0c;对控制系统的精度以及稳定性要求越来越高。卡尔曼滤波作为一种状态最优估计方法&#xff0c;应用也越来越普遍、 对于Kalman Filter的理解&#xff0c;用过都知道“黄金五条”公式&#xff0c;且通过…

pytorch实战13:基于pytorch实现YOLOv1(长长文)

基于pytorch实现YOLOv1&#xff08;长长文&#xff09; 前言 ​ 本篇文章的目的是记录自己实现yolo v1的过程&#xff0c;在此过程中&#xff0c;参考了许多开源的代码和博客&#xff0c;赞美大佬们。 参考文献和代码 YOLO v1代码参考&#xff1a;&#xff08;读书人的事情&…

华为OD机试真题 Python 实现【猜字谜】【2023Q1 100分】,附详细解题思路

目录 一、题目描述二、输入描述三、输出描述补充说明:四、解题思路五、Python算法源码六、效果展示1、输入2、输出3、说明一、题目描述 小王设计了一人简单的清字谈游戏,游戏的迷面是一人错误的单词,比如nesw,玩家需要猜出谈底库中正确的单词。猜中的要求如 对于某个谜面和…

武汉抖音seo,抖音关键词排名

抖音seo怎么做 抖音作为一款热门的社交娱乐应用&#xff0c;其SEO关键词排名对于提升内容曝光和用户流量非常重要。 1. 关键词研究&#xff1a;在进行SEO关键词排名时&#xff0c;首先需要进行关键词研究&#xff0c;了解用户在抖音上搜索的热门关键词。可以通过使用相关的关…

如何使用ArcGIS自定义图框样式

GIS制图过后&#xff0c;一般都会涉及到出图&#xff0c;大家肯定都希望自己的出图成果越美观越好&#xff0c;除了图本身之外&#xff0c;还可以从周边的一些修饰入手&#xff0c;比如图框&#xff0c;那么今天就给大家讲解一下如何自定义ArcGIS图框风格&#xff0c;希望能对大…

Docker-Dockerfile-DockerCompose的那些事

文章目录 一、Docker背景1.1 环境不一致1.2 隔离性1.3 弹性伸缩1.4 学习成本 二、Docker介绍2.1 Docker的由来2.2 Docker的思想 三、Docker的安装3.1 下载Docker依赖的环境3.2 指定Docker镜像源3.3 安装Docker3.4 Docker服务启停3.5 Docker容器运行解析3.6 Docker运行流程解析3…

暑期学JavaScript【第五天】

BOM Browser Object Model&#xff0c; 浏览器对象模型 DOM是BOM的一部分 1.navigator 用于判断当前的用户端。 用navigator.userAgent获取 2. location location.href www.baidu.com&#xff0c; 赋值后&#xff0c;执行直接跳转到百度location.search; 获取地址中?后面部…

maven查看jar的pom引入来源

从idea中点击 Maven Projects&#xff0c;后点击Show Dependencies&#xff0c;如图所示 得到依赖关系图&#xff0c;如下 在页面进行 Ctrl F 搜索需要的 Jar 名称 例&#xff1a;查找 spring-beans 双击框定的地方&#xff0c;就能进入到对应的pom文件 查找依赖关系 1、…

第三方库介绍——tslib库

文章目录 tslib 简介tslib 框架分析tslib 的框架 交叉编译、测试 tslibtslib应用程序 tslib 简介 tslib 是一个触摸屏的开源库&#xff0c;可以使用它来访问触摸屏设备&#xff0c;可以给输入设备添加各种“ filter ”( 过滤器&#xff0c;就是各种处理) 编译 tslib 后&#…

C语言学习准备-编辑器选择

今天继续给大家更新C语言经典案例 今天的案例会比昨天稍微有一些难度&#xff0c;但是同时还是非常经典的案例 本来是想给大家继续更新C语言经典案例&#xff0c;但是有朋友反应C语言编辑器的选择&#xff0c;刚好我自己也是想更换一下C语言的编辑器&#xff0c;跟大家分享一下…

TX Text Control 31.SP3 for Windows Forms Crack

Windows 窗体应用程序的文档处理 将文档编辑、创建和 PDF 生成添加到 Windows 窗体应用程序中。 视窗用户界面 功能齐全的文档编辑器 TX 文本控件是一种完全可编程的丰富编辑控件&#xff0c;可在专为 Visual Studio 设计的可重用组件中为开发人员提供广泛的文字处理功能。它…

力扣 77. 组合

题目来源&#xff1a;https://leetcode.cn/problems/combinations/ C题解&#xff08;来源&#xff09;&#xff1a; 代码随想录 回溯三部曲&#xff1a;将回溯问题看成一棵N叉树&#xff0c;n为广度&#xff0c;k为深度。 递归函数的返回值以及参数&#xff1a;需提前定义两个…

cookie 和 httpSession

目录 1.认识Cookie对象与HttpSession 1.1概念 1.2会话管理 2.cookie的使用 2.1cookie使用机制 2.2cookie不同属性的含义 2.2修改或者删除Cookie 2.3 Cookie对象的特点 2.4 Cookie对象的创建 2.5 Cookie中数据的获取 2.6 Cookie不支持中文的解决方案 2.7持久化Cooki…

代码随想录算法训练营第五天 | 哈希表系列1(哈希表理论基础--有效的字母异位词--快乐数)

哈希表系列1 哈希表理论基础242 有效的字母异位词读题小记代码随想录的代码力扣的示例代码 基于242的拓展题目--383赎金信我的代码力扣的示例代码代码随想录的代码 49 字母异位词分组力扣中录友的代码我的代码力扣的示例代码 438 找到字符串中所有字母异位词我的代码力扣录友的…

四、交换网络实验2——创建VLAN及端口配置

更多网络基础内容可见: 网络基础学习目录及各章节指引 4.6.2 创建VLAN及端口配置 实验目的 学习VLAN的创建删除 实验工具 Cisco Packet Tracer 实验环境 安装模拟器的Windows系统 实验步骤 第一步,vlan的创建

【实战】 六、用户体验优化 - 加载中和错误状态处理(上) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(八)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理1.给页面添加 …

web接口开发与测试——你了解多少

目录 前言 Django快速开发之投票系统 编写接口文档 系统接口测试 总结&#xff1a; 前言 最近一直在学习和整理web开发与接口测试的相关资料。接口测试本身毫无任何难度&#xff0c;甚至有很多工具和类库来帮助我们进行接口测试。大多测试人员很难深入了解web接口测试的原…

自然语言生成:解决低频Tokens退化整个Tokens模型问题

Rare Tokens Degenerate All Tokens:Improving Neural Text Generation via Adaptive Gradient Gating for Rare Token Embeddings 摘要 最近的研究发现&#xff0c;大规模神经语言模型学到的Token embeddings&#xff08;令牌嵌入&#xff09;具有退化的各向异性和狭锥形状。…

MobileNet

MobileNet 文章目录 MobileNet单词重要不重要 摘要MobileNetV1Motivation深度可分离卷积逐通道卷积&#xff08;Depthwise Convolution&#xff09;逐点卷积&#xff08;Pointwise Convolution&#xff09;参数对比计算量对比 V2Inverted ResidualsLinear BottlnecksModel Arch…

使用docker进行upload-labs靶场的安装搭建

由于我是在kali上搭建&#xff0c;默认没有docker服务&#xff0c;这里就从按照docker开始讲解 一、docker按装 1、Linux内核版本查看 #如果你是kali可直接从第四步开始 #安装docker要求内核版本kerner>3.10 #为此&#xff0c;先检查当前Linux系统的内核版本 uname -a2…