Supervisor进程管家:安装、配置、实例和报错问题处理

supervisord进程管理工具 yum 安装 yum install epel-release yum install -y supervisor easy_install安装 yum install -y python-setuptools easy_install supervisor echo_supervisord_conf >/etc/supervisord.conf vim /etc... 阅读详情

本文链接:https://blog.youkuaiyun.com/weixin_44602187/article/details/86598121
Supervisor是一个进程管理工具

用途就是有一个进程需要每时每刻不断的跑,但是这个进程又有可能由于各种原因有可能中断。当进程中断的时候我希望能自动重新启动它,此时,我就需要使用到了Supervisor

1、安装与配置

第一步:安装supervisor(前提要有python2)

wget https://pypi.python.org/packages/source/s/supervisor/supervisor-3.1.3.tar.gz
tar zxvf supervisor-3.1.3.tar.gz
cd supervisor-3.1.3
python setup.py install
第二步:创建配置文件

echo_supervisord_conf > /etc/supervisord.conf
第三步:修改配置文件(注意:以下以数字开头的代表行号,可以直接定位修改)

mkdir /var/log/supervisord/
touch /var/log/supervisord/supervisord.log
vim /etc/supervisord.conf
 12 file=/var/run/supervisor.sock ;socket 路径,如果不设置,则supervisorctl不能用
 18 [inet_http_server]            ;开启web页面服务
 19 port=*:9999                   ;自定义端口号
 20 username=admin                ;认证用户名,非必须设置项
 21 password=123456               ;认证用户名密码,可以直接使用明码
 23 [supervisord]                 ;定义服务端进程supervisord的相关属性。必须设置项
 24 logfile=/var/log/supervisord/supervisord.log ;指定supervisord主进程的日志路径
 28 pidfile=/var/run/supervisord.pid  ;指定pid路径, 非必须设置
 48 serverurl=unix:///var/run/supervisor.sock ;supervisorctl连接supervisord,路径与12行的file一致
 140 [include]                    ;把配置信息写到多个自定义文件中
 141 files = /root/supervisor-3.1.3/supervisord/*.conf 
1
2
3
4
5
6
7
8
9
10
11
第四步:写*.conf配置文件(自定义一个简单的实例)

mkdir /root/supervisor-3.1.3 /supervisord/
vim /root/supervisor-3.1.3 /supervisord/app.conf
[program:app]
command=python /root/app/app.py #执行的命令,如果是程序的话,需要指定在前台运行
#以上两条必要,以下都是设置参数非必要
#directory=/root/app/               进入到这个目录中
#stdout_logfile=/root/app/app.log   成功日志
#stderr_logfile=/root/app/app.log   错误日志
#user=root                          启动elasticsearch 的用户
#numprocs=1                         Supervisor启动这个程序的多个实例,
#autostart=true                     设置为随 supervisord 启动而启动
#autorestart=true                   设置为随 supervisord 重启而重启
#startretries=3                     设置elasticsearch 重启的重试次数
#priority=1                       权重值,值越低,越早启动,越晚关闭。默认999
1
2
3
4
5
6
7
8
9
10
11
12
mkdir /root/app/
vim /root/app/app.py
from flask import Flask
app=Flask(__name__)
@app.route('/')
def index():
    return "Hello World"
if __name__=="__main__":
    app.run(port=88)
1
2
3
4
5
6
7
2、测试是否成功

supervisord #初始启动
supervisorctl #进入交互式
>update #更新conf配置文件
>status #查看状态
输出信息:app RUNNING pid 27905, uptime 0:00:03

curl 127.0.0.1:88
输出信息:Hello World

3、配置各程序的实例(在/root/supervisor-3.1.3 /supervisord/目录下创建)

实例1:sshd

vim sshd.conf
[program:sshd]
command=/usr/sbin/sshd  -D
1
2
实例2:httpd

vim httpd.conf
[program:httpd]
#管理守护程并使在前台保持运行
command=/usr/sbin/httpd -DFOREGROUND 
autostary=true
autorestart=true
startretries=3
stdout_logfile=/var/log/supervisord/apache.log
#loglevel=info
1
2
3
4
5
6
7
8
实例3:Nginx
nginx默认以daemon方式启动的,用supervisord来管理nginx,在配置文件里添加一行设置daemon off让nginx以非daemon方式启动。(supervisord还要求管理的程序是非daemon程序,supervisord会帮你把它转成daemon程序)。注意添加这一行后Nginx系统(命令)运行就在前台运行,占用终端。

vim /usr/local/nginx/conf/nginx.conf
worker_processes 2;
daemon off;
events {
1
2
3
vim nginx.conf
[program:nginx]
command=/usr/local/nginx/sbin/nginx
stdout_logfile=/tmp/nginx.log
stderr_logfile=/tmp/nginx.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=55
1
2
3
4
5
6
7
8
9
实例4:Redis

vim redis.conf
[program:redis]
directory=/usr/local/src/redis-2.6.16            
command=/usr/local/src/redis-2.6.16/src/redis-server redis.conf   
stdout_logfile=/tmp/redis_access.log
stderr_logfile=/tmp/redis_error.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=10
1
2
3
4
5
6
7
8
9
10
实例5:java项目(java.jar放到/date/sites/java/目录下)

vim java.conf
[program:java]
command=java -jar java.jar
directory=/data/sites/java
autostart=true
autorestart=true
logfile_maxbytes=50MB
logfile_backups=10
loglevel=info
stderr_logfile=/data/logs/java/err.log
stdout_logfile=/data/logs/java/out.log
stopsignal=INT
redirect_stderr=true
1
2
3
4
5
6
7
8
9
10
11
12
把supervisor加入开机自启动服务(CentOS7.X系统),利用/etc/rc.local

echo “/usr/bin/supervisord -c /etc/supervisord.conf” >> /etc/rc.local
/etc/rc.local是/etc/rc.d/rc.local的软连接
如果开机启动不生效,则首先需要检查下/etc/rc.d/rc.local是否具有可执行权限

4、supervisor相关命令

supervisord --启动
supervisorctl reload --修改完配置文件后重新启动
supervisorctl update --更新有变化的*.conf配置文件
supervisorctl status --查看进程状态
supervisorctl start 进程名 --启动XXX进程
supervisorctl stop 进程名 --停止XXX进程
supervisorctl stop all --停止全部进程
supervisorctl #进入交互式,命令与上面相同
5、报错问题

问题1:

supervisorctl reload
报错:error: <class ‘socket.error’>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224

supervisorctl
报错:unix:///var/run/supervisor.sock refused connection

报错原因:supervisor没有启动

问题处理:启动supervisor

supervisord
问题2:

supervisorctl
报错:httpd BACKOFF Exited too quickly (process log may have details)

supervisor> start httpd
报错:httpd: ERROR (abnormal termination)

报错原因:
*.conf配置文件中的’command=/usr/sbin/httpd’写少了参数

问题处理:
改成:‘command=/usr/sbin/httpd -DFOREGROUND’

问题3:

supervisorctl
报错:httpd FATAL Exited too quickly (process log may have details)

supervisor> start httpd
报错:apache: ERROR (abnormal termination)

报错原因:
supervisord管理的进程必须由supervisord来启动,supervisord还要求管理的程序是非daemon程序,supervisord会帮你把它转成daemon程序。linux系统程序已经启动httpd进程,造成supervisor启动不了。

问题处理:
systemctl stop httpd 把系统进程停了
supervisorctl start httpd 再启动

问题4:

supervisorctl
>update
>status
报启动中:nginx STARTING #(一般报启动中都是有问题的)

>status
报错:nginx BACKOFF Exited too quickly (process log may have details)

>start nginx
报错:nginx: ERROR (abnormal termination)

>status
报错:nginx FATAL Exited too quickly (process log may have details)

报错原因:
supervisord管理的程序是非daemon程序(要在前台运行),nginx默认以daemon方式启动的。Nginx启动了,就放在后台运行了。

问题处理:
在配置文件里添加一行设置daemon off让nginx以非daemon方式启动。

vim /usr/local/nginx/conf/nginx.conf
worker_processes 2;
daemon off;
events {

 ———————————————— 
版权声明:本文为优快云博主「褪sεの记忆」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/weixin_44602187/article/details/86598121

K8s 异常问题处理 问题1:etcd、apiserver启动异常 现象: [root@hdss7-22 supervisord.d]# supervisorctl status etcd-server-22 FATAL Exited too quickly (process log may have details) kube-apiserver-7-22 FATAL Exited too quickly (proce... 阅读详情

相关推荐

Django基础教程(144)Django使用supervisor管理进程之安装supervisor软件包:当Django遇上Supervisor:你的Web应用从未如此“稳如老狗”!

还在为Django进程意外崩溃而深夜加班?Supervisor来拯救你的发际线!本文用最接地气的方式,手把手教你用这款“进程守护神”管理Django应用。从安装配置到实战示例,涵盖生产环境常见坑点,让你的Django服务像开了无敌模式——256字看完就能上手,妈妈再也不用担心我的服务突然挂掉!

jxf_jxfcsdn的博客 760

Linux配置Supervisor 配置遇到的坑

在linux中web 应用部署到线上后之后发现退出终端后网站就无法访问了 所以需要用Supervisor来守护进程,它可以保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。 在安装配置Supervisor时遇到了挺多坑,我们先看一下安装流程 $ # 安装Supervisor $ yum install py...

djwm003158的博客 1028

Supervisor 实战指南:从安装到进程管理

本文提供了一份详尽的Supervisor实战指南,涵盖从安装、核心概念到进程管理的完整流程。文章详细解析了配置文件,并通过部署Python Web应用的实战案例,演示了如何将应用配置为守护进程,实现自动重启与集中管理。同时,指南也介绍了日常运维命令与故障排查技巧,帮助运维人员和开发者高效部署与管理后台服务。

weixin_29281915的博客 224

supervisorctl 报错[Errno 111] Connection refused

配置完应用之后,重新加载配置 supervisorctl reload 缺出现如下错误: error: <class 'socket.error'>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224 检查supervisord进程 ps aux|grep supervisord 手动启动进程 如果上一步没发现进程号,那么可以执行下面的命令 supervisord -c /etc/

唯有美食与爱不可辜负 3950

Ubuntu 18.04 部署 ERPNext:稳定优先的生产级安装指南

ERPNext 是一款基于 Python 和 Vue.js 的开源企业资源计划系统,其运行依赖明确的技术栈组合。理解其底层原理需从 Frappe 框架出发——它通过 Python 处理业务逻辑与数据库交互,由 MariaDB 提供高兼容性事务支持,再经 Node.js 编译 Vue 前端并由 Yarn 锁定依赖版本,最终在 Ubuntu 等 Linux 发行版上构建出可维护的生产环境。该架构强调稳定性与可控性,尤其适合基础设施受限的中小企业、教育实训场景及长期运维需求。本文聚焦 Ubuntu 18.04 这

weixin_30735745的博客 334

3DE重客户端安装

3DE重客户端安装

m0_48170265的博客 9429

Supervisor 进程守护实战指南

在 Linux 服务器运维中,我们常会遇到这样的尴尬场景:某个关键的后台脚本因为网络波动或内存溢出突然退出了,而直到用户投诉业务中断时,管理员才后知后觉地登录服务器重启服务。对于运行在单台机器上的小型应用或微服务集群而言,引入庞大的容器编排系统似乎有些杀鸡用牛刀,但完全依赖人工监控又显得捉襟见肘。这时候,一个轻量级、功能纯粹的进程管理工具就显得尤为重要。

qq_24211853的博客 466

基于OSPF技术的某企业网络设计(完整文档+ENSP拓扑图)

主要对网络规划与设计,以企业网络为背景,对某个中型企业网络进行规划设计,该企业总部在南京,在常州有一个分公司,需要实现总部和分公司能够访问外网,能够让分公司内的用户或主机访问总部服务器的资源,并且保证数据的安全性。在这次总部企业网络设计中,考虑到资金的问题,核心层部署2台核心三层交换机,负责转发总部内部用户的流量,并充当内部用户网关,能够实现内部不同网段的用户之间的连通性。对于一些对网络比较敏感的企业或用户,对网络的要求较高,对于网络的稳定性和安全性也有较高的要求。

qq1325513482的博客 2万+

ClearerVoice-Studio日志分析:通过supervisor日志定位语音处理异常

本文介绍了如何在星图GPU平台上自动化部署ClearerVoice-Studio语音处理全流程的一体化开源工具包,并分享了通过分析其supervisor日志来定位服务异常的方法。该镜像集成了多种语音增强与分离模型,可快速应用于会议录音降噪、清晰化处理等典型场景,帮助用户高效排查问题,确保语音处理服务稳定运行。

weixin_42601608的博客 341

基于ZYNQ7020芯片(黑金开发板AX7020)之AXI-FULL DDR的PL与PS交互操作。

在该工程中我们使用了PS端的串口接收功能,PS端串口接收和发送分别有一个64字节的FIFO,但是因为串口接收阈值设置为16,所以固定接收16个字节数据后才会发生中断。此测试工程得到以前知识的总结和各大网友的支持,只希望可以为学习的你更进一步,大家一起学习才是真的开心。加油,国产芯片之路。

landyjzlai的博客 3192

华为防火墙双线路配置实战:5分钟搞定主备自动切换(含健康检查避坑指南)

本文详细介绍了华为防火墙双线路配置实战,包括主备自动切换和健康检查机制的优化技巧。通过智能健康检查机制,华为防火墙能实现毫秒级故障自动切换,确保网络高可用性。文章提供了从架构设计到实战配置的全流程指南,并分享了常见配置误区与解决方案,帮助中小企业快速搭建稳定可靠的网络架构。

weixin_30872337的博客 605

卡证检测矫正模型部署教程:Supervisor配置文件修改与服务热更新

本文介绍了如何在星图GPU平台上自动化部署卡证检测矫正模型镜像,并实现服务的高可用管理。该模型能自动检测并矫正身份证、护照等证件照片的倾斜与变形,可广泛应用于金融开户、酒店入住等需要快速、准确核验证件的业务场景,提升OCR识别效率。

FrostfirePanther89的博客 1005

Hive数据仓库分层架构实战:4层黄金模型×6大业务场景×万亿级数据优化方案

根据《2023数据中台成熟度报告》,‌78%的ETL任务性能瓶颈‌源于分层设计不合理。本文基于某头部电商平台PB级数据仓库建设经验,结合金融风控、用户画像、实时大屏等核心场景,深度解析‌ODS→DWD→DWS→ADS‌四层架构设计原则,揭秘‌万亿级数据治理方案‌与‌维度建模20大避坑策略‌。

优快云博客专家,领域包括但不限于:AI、大数据、Python、架构师,有合作、课程、问题、疑惑请私信博主 1484

RexUniNLU镜像开箱即用教程:Supervisor日志路径与重启策略配置

本文介绍了如何在星图GPU平台上自动化部署RexUniNLU零样本通用自然语言理解-中文-base镜像,并配置其Supervisor服务以实现稳定的日志管理与自动重启。该镜像能够快速搭建中文自然语言理解服务,典型应用于从文本中自动化抽取人名、地名、机构名等实体信息,提升信息处理效率。

weixin_32836713的博客 220

odoo19/18集成reportbro 打印插件 完美支持静默打印

ReportBro设计器 一个用于创建PDF和XLSX报告模板的javascript插件。ReportBro Designer可以轻松集成到您的Web应用程序中。每个人都可以设计和编辑文档模板,并直接在浏览器中预览它们。可以使用服务器上的 (有关完整的文档和演示,请参阅上的ReportBro项目网站。reportBro官方没有提供。测试环境:odoo17社区版。2.产品标签打印设计。

zxltwins的博客 2772

学 Simulink—— 基于高频方波电压注入的表贴式永磁电机无感控制仿真

本文手把手教授基于Simulink的高频方波电压注入法实现表贴式永磁同步电机(SPMSM)无传感器控制。针对表贴式电机微弱凸极特性(Lq/Ld≈1.05-1.15),详解方波注入相比正弦注入的优势:通过5kHz方波(PWM频率半值)集中能量提升信噪比,并采用相邻周期电流直接相减的零延迟分离技术。系统架构包含高频注入器、无滤波器信号分离模块、锁相环观测器和磁饱和极性辨识等关键环节,提供参数设置经验(如注入幅值10-15%Vdc)和典型性能指标(位置误差<0.2rad)。特别强调工程实现要点:PWM同步时

xiaoheshang_123的博客 168

ROS 2节点守护方案:轻量级Supervisor实现故障自愈与生命周期管理

在机器人系统工程中,ROS 2节点的异常退出、资源耗尽和依赖阻塞是影响7×24小时稳定运行的核心挑战。基于ROS 2原生/node_states事件机制,节点守护工具通过事件驱动架构实现毫秒级状态感知,结合有限状态机引擎执行分级恢复策略(如重启、进程级重拉、依赖链重置),避免传统轮询带来的性能开销与延迟。其技术价值在于零侵入集成——无需修改业务节点代码,仅通过launch配置即可启用;同时深度兼容诊断框架(/diagnostics)、Prometheus可观测体系及systemd分层运维体系。适用于Jets

B1334628598的博客 423

【图论】系列(七)图论的中心性度量方法及重要性评价指标

图论中的中心性度量方法是用来衡量图中各个节点(或顶点)相对重要性的指标。

qq_30066733的博客 1077

Youtu-VL-4B-Instruct镜像免配置:supervisor自动管理服务,7860端口即启即用

本文介绍了如何在星图GPU平台上自动化部署Youtu-VL-4B-Instruct多模态视觉语言模型(腾讯优图)镜像。该镜像已预配置supervisor服务管理,实现开箱即用,用户可通过7860端口快速访问Web界面或API。其核心应用场景之一是智能电商商品分析,例如自动识别并描述用户上传的商品图片,生成详细的商品特征说明。

weixin_35390379的博客 27

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Alpamayo-R1-10B部署教程:使用systemctl验证supervisor开机自启状态

本文介绍了如何在星图GPU平台上自动化部署Alpamayo-R1-10B自动驾驶专用开源视觉-语言-动作(VLA)镜像,并确保其WebUI服务通过supervisor实现开机自启。通过配置systemctl服务,用户可以验证并保障该自动驾驶模型推理服务在服务器重启后能自动恢复,从而稳定支持自动驾驶研发流程中的模型测试与交互应用。

weixin_35045970的博客 436

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

SenseVoice-small实战教程:supervisor服务管理命令大全(启停查日志)

本文介绍了在星图GPU平台上自动化部署sensevoice-small-轻量级多任务语音模型的 ONNX 量化版WebUI V1.0镜像的实战教程。该教程重点讲解了如何使用supervisor服务管理命令来启停、监控和排查该语音识别服务,其核心应用场景是快速将会议录音等音频内容转录为文字,提升信息处理效率。

weixin_35414484的博客 23

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Chord视觉定位模型部署教程:Supervisor自动重启机制+服务健康检查配置

本文介绍了如何在星图GPU平台上自动化部署基于 Qwen2.5-VL 的视觉定位chord视觉定位模型镜像,实现自然语言驱动的图像目标精准定位。用户上传图片并输入描述性语句(如“穿蓝裙子的小女孩”),模型即可返回像素级边界框坐标,广泛适用于智能质检、机器人视觉引导和图像检索等工业级场景。

weixin_42578963的博客 302

VideoAgentTrek-ScreenFilter实操手册:supervisor服务管理与日志排查指南

本文介绍了如何在星图GPU平台上自动化部署VideoAgentTrek-ScreenFilter镜像,并重点阐述了其后台服务管理与日志排查方法。该镜像是一个基于YOLO的屏幕内容检测工具,用户可通过其提供的Web界面,便捷地对视频或图片中的屏幕区域进行自动化识别与过滤。

weixin_31749299的博客 95

Nanbeige4.1-3B部署教程:Supervisor进程管理配置详解(含开机自启与异常重启)

本文介绍了如何在星图GPU平台上自动化部署Nanbeige4.1-3B 3B参数级通用小语言模型,并利用Supervisor进程管理工具实现服务的开机自启与异常自动重启。通过配置Supervisor,该模型服务能够实现7x24小时稳定运行,为智能对话、文本生成等应用场景提供可靠的后端支持。

weixin_42160645的博客 787

海景美女图FLUX.1部署教程:supervisor日志路径与错误码速查表

本文介绍了如何在星图GPU平台上自动化部署“海景美女图 - 一丹一世界FLUX.1 AI 图像生成服务v1.0”镜像,并快速定位服务日志与排查常见错误。该镜像的核心应用场景是,用户通过输入文字描述,即可快速生成高质量的海景主题AI图像,极大简化了创意视觉内容的制作流程。

weixin_32242475的博客 101
上一篇: windwos10 安装Python3.7
下一篇: 在Linux上安装Python3
javaee1234
博客等级 码龄10年 49粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值