百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Supervisor服务自启动

moboyou 2025-03-30 15:34 12 浏览

介绍

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

安装

centos

yum install epel-release

yum install -y supervisor

systemctl enable supervisord # 开机自启动

systemctl start supervisord # 启动supervisord服务

systemctl status supervisord # 查看supervisord服务状态

配置

默认配置文件的目录:

/etc/supervisord.conf #主配置文件 
/etc/supervisord.d/ #单服务配置文件的目录

主配置文件需要的改动(supervisord.conf):

[include] 
files = supervisord.d/*.conf #默认是ini,可以修改为conf

主配置文件其它地方一般默认就好,若有特殊的需求可以问我或者自行百度。

单个服务的配置文件:

每个需要supervisor进行管理的服务最好单独配置在/etc/supervisord.d目录下,介绍如下:

[program:x]:配置文件必须包括至少一个program,x是program名称,必须写上,不能为空

  • command:包含一个命令,当这个program启动时执行
  • directory:执行子进程时supervisord暂时切换到该目录
  • user:账户名
  • startsecs:进程从STARING状态转换到RUNNING状态program所需要保持运行的时间(单位:秒)
  • redirect_stderr:如果是true,则进程的stderr输出被发送回其stdout文件描述符上的supervisord
  • stdout_logfifile:将进程stdout输出到指定文件
  • stdout_logfifile_maxbytes:stdout_logfifile指定日志文件最大字节数,默认为50MB,可以加KB、MB或GB等单位
  • stdout_logfifile_backups:要保存的stdout_logfifile备份的数量

特别说明:supervisor不能够管理后台运行的服务,所以有些服务如果需要supervisor进行管理的话,特殊配置一下。Tomcat的常用启动命令在linux中就会默认后台运行,所以用它举例(参照本地机器):

1. 在/etc/supervisord.d/目录下新建cat.conf文件。

[program:tomcat] 
#tomcat中catalina.sh所在位置 加上 run 
command=/root/task/apache-tomcat-7.0.68/bin/catalina.sh run 
#jdk安装目录 
environment=JAVA_HOME="/usr/lib/jvm/java-8-oracle",JAVA_BIN="/usr/lib/jvm/java-8- oracle/bin"
#执行时切换到tomcat所在目录 
directory=/root/task/apache-tomcat-7.0.68 
#执行的用户 
user=root 
autostart = true 
autorestart=true 
redirect_stderr=true

2. systemctl status supervisord重启服务。

3. 通过supervisord启动tomcat.

supervisorctl start tomcat

介绍一下supervisorctl命令

supervisorctl 是 supervisord的命令行客户端工具

  1. supervisorctl status:查看所有进程的状态
  2. supervisorctl stop tomcat
  3. supervisorctl start tomcat
  4. supervisorctl restart tomcat
  5. supervisorctl update
  6. supervisorctl reload

注意事项:

  1. 前面说过,后台进程supervisor管不到,类似ES -d,Tomcat (startup)之类的启动命令默认是后台命令,需要特殊处理,不然的话服务应该会不断的重启。
  2. supervisord 服务启动一个就好,不要启动多个。
  3. 通过supervisord管理的服务需要通过supervisro 启动。
  4. 重新部署项目的时候需要停掉supervisord服务,不然服务会一直重启(默认三次)。



相关推荐

Python网络爬虫之分析网页

一、分析并提取网页内容的有三种方式o正则表达式(速度最快,但适应变化略差)oBeautifulsoup库(速度是正则表达式的约几分之一)oselenium或pyppeteer的中的浏览器对象的查找元素...

Python进阶-day9:正则表达式

目标学习Python的re模块基础用法。掌握正则表达式的匹配(match,search,findall)、替换(sub)和分割(split)操作。练习:编写代码从一段文本中提取所有邮箱地址。学习内...

Python模块datetime、calendar、logging、argparse、re用法

datetime模块:提供日期和时间相关的功能。importdatetime#获取当前日期和时间current_time=datetime.datetime.now()#格式化日期...

一文讲清怎么利用Python实现Linux系统日志检索分析管理系统

摘要:在现代IT运营与开发中,日志分析早已成为不可或缺的核心环节。无论是排查系统故障、进行安全审计,还是优化服务性能,日志文件始终是最真实、最权威的信息来源。Linux系统作为主流的服务器操作系统,其...

Python基础编程——标准库之shelve模块

在实际开发中,要将数据进行持久化,通常的做法是,将数据保存到文件或者数据库中。Python有多种方法将数据保存到文件中,本节将会介绍使用Python的标准库shelve来将数据保存到文件中。shelv...

使用 Python 开发一个 Python 解释器

原文地址:https://python.plainenglish.io/introduction-to-creating-interpreter-using-python-c2a9a6820aa0原文...

强烈推荐!Python 这个宝藏库 re 正则匹配

Python的re模块(RegularExpression正则表达式)提供各种正则表达式的匹配操作。在文本解析、复杂字符串分析和信息提取时是一个非常有用的工具,下面总结了re模块的常用方...

python入门到脱坑正则表达式—re.match()函数

re.match()是Python正则表达式模块re中的一个重要方法,用于从字符串的起始位置匹配一个模式。下面我将详细介绍它的用法和特点。基本语法re.match(pattern,stri...

Python中使用re模块实现正则表达式的替换字符串操作

#编程语言#我是"学海无涯自学不惜!",关注我,一同学习简单易懂的Python编程。0基础学python(83)Python中,导入re模块后还可以进行字符串的替换操作,就是sub()...

深入理解re模块:Python中的正则表达式神器解析

在Python中,"re"是一个强大的模块,用于处理正则表达式(regularexpressions)。正则表达式是一种强大的文本模式匹配工具,用于在字符串中查找、替换或提取特定模式...

python入门到脱坑正则表达式—re.search()函数

re.search()是Python正则表达式模块re中的核心函数之一,用于在字符串中搜索匹配指定模式的第一个位置。与re.match()不同,它不限制匹配必须从字符串开头开始。基本语法...

python入门到脱坑正则表达式—re.sub()函数

re.sub()是Python正则表达式模块re中用于字符串替换的核心函数,它可以在字符串中搜索匹配正则表达式的部分,并将其替换为指定的内容。基本语法re.sub(pattern,repl...

python之re模块

re模块一.re模块的介绍1.什么是正则表达式"定义:正则表达式是一种对字符和特殊字符操作的一种逻辑公式,从特定的字符中,用正则表达字符来过滤的逻辑。(也是一种文本模式;)2、正则表达式可以...

Python中re模块详解

在《用最简单的方式教会你使用Python正则》一文中,我们介绍了正则表达式该如何书写,还通过简单的示例介绍了Python中如何通过re模块使用正则功能。今天本文将通过以下内容详细介绍r...

微信积分商城货到付款系统|裂变营销+物流闭环

微信积分商城货到付款系统核心卖点速览零成本运营:免授权+完全开源PHP源码,9MB轻量部署,Mysql数据库高效支撑。灵活支付组合:独创“积分+货到付款+运费”混合支付,用户兑换无忧,商家资金零风险...