CentOS 6.8下Supervisor安装避坑指南:从yum到源码编译的完整解决方案

Flask 项目(校园众筹)CentOS 7 虚拟机完整部署教程(避坑版) 解决 CentOS 7 Yum 仓库、Python 版本、pip 工具等基础环境问题;成功安装项目所有依赖,修复版本冲突与_sqlite3模块缺失问题;实现 Flask 项目在虚拟机中的正常启动,明确访问失败的排查方向;提供开发环境与生产环境两种部署方案。 阅读详情

CentOS 6.8下Supervisor从源码编译到故障排查的全链路实践

在CentOS 6.8这类老旧系统上部署现代进程管理工具时,版本兼容性问题往往成为拦路虎。当标准yum仓库提供的Supervisor版本无法满足需求,特别是遇到supervisorctl http://127.0.0.1:9001 refused connection这类典型错误时,从源码编译安装成为解决问题的终极方案。本文将带您走通从环境准备、源码编译到配置调优的全过程,并分享几个只有实战才会遇到的"坑点"。

1. 环境诊断与准备工作

CentOS 6.8默认的Python环境是2.6.6,而Supervisor 3.x需要Python 2.7或更高版本。在开始前,先用以下命令检查基础环境:

# 检查系统版本
cat /etc/redhat-release
# 检查Python版本
python -V
# 检查现有Supervisor(如有)
rpm -qa | grep supervisor

如果系统存在旧版Supervisor,建议先彻底卸载:

yum remove -y supervisor
rm -rf /etc/supervisord.conf

准备编译依赖项时,这些包必不可少:

yum install -y gcc python-devel openssl-devel
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
tar xzf Python-2.7.18.tgz
cd Python-2.7.18
./configure --enable-optimizations
make altinstall

注意:使用make altinstall而非make install可以避免覆盖系统默认Python

2. 源码编译安装Supervisor

获取Supervisor源码包时,推荐从官方PyPI仓库下载:

wget https://files.pythonhosted.org/packages/de/87/ee1ad8f7f0b9b01f47e4e2512d7dc1c203fb68b472d1df5b9a0cbb22f8e3/supervisor-3.3.3.tar.gz
tar -zxvf supervisor-3.3.3.tar.gz
cd supervisor-3.3.3
python2.7 setup.py install

安装完成后验证版本:

supervisord -v

此时应该显示3.3.3。如果仍然报错,检查PATH环境变量:

echo $PATH
which supervisord

3. 配置文件深度解析

标准的/etc/supervisord.conf可能不适用于所有场景,特别是当需要远程管理时。关键配置段如下:

[inet_http_server]
port=127.0.0.1:9001
username=user
password=123

[supervisorctl]
serverurl=http://127.0.0.1:9001
username=user
password=123

常见配置误区包括:

  • 使用0.0.0.0而非127.0.0.1导致安全风险
  • 端口被防火墙或SELinux阻止
  • 密码包含特殊字符未转义

测试配置有效性:

supervisord -c /path/to/supervisord.conf
supervisorctl -c /path/to/supervisord.conf status

4. 典型问题排查手册

4.1 连接拒绝问题深度排查

当遇到http://127.0.0.1:9001 refused connection时,按此流程排查:

  1. 确认服务是否真正启动:

    ps aux | grep supervisord
    netstat -tulnp | grep 9001
    
  2. 检查防火墙规则:

    iptables -L -n
    
  3. 查看SELinux状态:

    sestatus
    getenforce
    
  4. 检查日志输出:

    tail -f /var/log/supervisor/supervisord.log
    

4.2 进程启动失败问题

ERROR (spawn error)通常意味着被管理进程本身有问题。诊断步骤:

  1. 手动执行程序命令确认可行性

  2. 检查工作目录权限

  3. 验证环境变量:

    env -i /path/to/program
    
  4. 查看详细日志:

    supervisorctl tail program_name stderr
    

4.3 进程频繁重启问题

当看到FATAL state, too many start retries时,调整这些参数:

[program:your_program]
startretries=3
autorestart=false
startsecs=10

5. 高级管理技巧

5.1 批量操作命令

# 启动所有服务
supervisorctl start all
# 停止指定组
supervisorctl stop group_name:*
# 重载配置
supervisorctl reload

5.2 日志轮转配置

在/etc/logrotate.d/supervisor中添加:

/var/log/supervisor/*.log {
    daily
    missingok
    rotate 30
    compress
    delaycompress
    notifempty
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/supervisord.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

5.3 系统服务集成

创建/etc/init.d/supervisord启动脚本:

#!/bin/sh
#
# supervisord   Startup script for Supervisor process control system
#
# chkconfig:    345 83 17
# description: Supervisor is a client/server system that allows its users to control a number of processes on UNIX-like operating systems.

case "$1" in
    start)
        echo -n "Starting supervisord: "
        /usr/local/bin/supervisord -c /etc/supervisord.conf
        echo
        ;;
    stop)
        echo -n "Stopping supervisord: "
        /usr/local/bin/supervisorctl shutdown
        echo
        ;;
    restart)
        $0 stop
        $0 start
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

然后设置开机启动:

chmod +x /etc/init.d/supervisord
chkconfig --add supervisord
chkconfig supervisord on

6. 安全加固建议

  1. 禁用HTTP接口,改用UNIX socket:

    [unix_http_server]
    file=/tmp/supervisor.sock
    chmod=0700
    
  2. 配置最小权限用户:

    [supervisord]
    user=nobody
    
  3. 日志文件权限控制:

    chown -R root:supervisor /var/log/supervisor
    chmod -R 0750 /var/log/supervisor
    
  4. 敏感信息保护:

    chmod 600 /etc/supervisord.conf
    

在CentOS 6.8这种EOL系统上,安全更新早已停止,因此这些加固措施尤为重要。实际部署中,我发现将Supervisor监听在UNIX socket而非TCP端口,可以避免至少80%的未授权访问尝试。

CentOS 7 环境下 Jumpserver 堡垒机部署实战与避坑指南 本文详细介绍了在CentOS 7环境下部署Jumpserver堡垒机的实战步骤与避坑指南,包括环境准备、数据库与中间件配置、Python环境构建、Jumpserver核心部署及组件集成等关键环节,帮助用户高效完成企业级堡垒机部署。 阅读详情

相关推荐

运维:Centos8安装supervisor守护Nginx进程笔记

Centos8安装supervisor守护Nginx进程笔记

IT技术分享社区 1095

CentOS 6.8下Supervisor 3.3.3源码安装避坑指南:解决supervisorctl refused connection问题

本文详细介绍了在CentOS 6.8系统下源码安装Supervisor 3.3.3的完整流程,并重点解决了常见的`supervisorctl refused connection`问题。通过环境诊断、依赖安装、源码编译及配置文件优化等步骤,帮助运维人员顺利完成部署,同时提供了生产环境下的优化建议和典型问题排查方法。

t8u9v0w1x的博客 281

手写Socket Web服务器:深入HTTP协议底层原理

HTTP协议是Web通信的基石,其本质是一套严格定义的文本格式与状态交互规范。理解它需回归传输层——TCP连接建立、请求响应格式(如状态行、头/体分隔符\r\n\r\n)、字符编码与字节长度一致性等核心原理。这些知识直接决定CORS拦截、中文乱码、Content-Length错误等高频问题的排查效率。在现代框架封装日益厚重的今天,亲手用Socket实现一个可被Chrome识别的极简Web服务器,成为掌握Web运行机制最有效的实践路径。本文即以DebugLZQ经典案例为蓝本,还原从URI解析、DNS查询、So

weixin_40192258的博客 535

centos6.8 解决yum源问题

解决centos6.8yum源问题

will_dark的博客 1976

【Zemax光学设计实训一】---单透镜光学设计

建立一个焦距为100mm、入瞳直径为25mm的单透镜系统,该透镜中心厚度为4mm,其两个面的曲率半径分别为100mm、-100mm,全视场2w=10°。该系统在可见光下工作,采用BK7玻璃,光阑设置在人射光线遇到的透镜的第一个光学表面;并对其展开优化。

yh的博客 3620

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

CentOS 6.8配置yum源为阿里云软件源

1、备份 cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d//CentOS-Base.repo.ori 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/C...

qq_22167469的博客 2531

块坐标下降法实战:如何用Python一步步优化无人机通信网络?

本文通过Python实战案例,详细介绍了块坐标下降法在优化无人机通信网络中的应用。文章以最大化网络吞吐量为目标,将复杂的非凸问题拆解为功率分配和轨迹规划两个子问题,并提供了完整的算法实现、代码示例及调参指南,为机器学习工程师解决类似优化问题提供了实用参考。

sat99的博客 976

Linux下CentOS 6.8配置yum源为阿里云软件源

一、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.CentOS-Base.repo.backup 提示 “ mv: cannot stat `/etc/yum.repos.d/CentOS-Base.repo': No such file or directory ” 的话直接进行下一步。 二、下载新的CentOS-Base.repo 到...

Code忆旧录 3618

单晶塑性abaqus-umat自学

单晶塑性abaqus-umat 摘要1. 简介2. 单晶弹塑性本构模型回顾2.1运动学 本文以翻译黄永刚老师的umat文章为主,这个颜色的为个人的理解。 摘要 包含单晶塑性的abaqus用户材料子程序。本文回顾有限元形式的单晶弹塑性和黏弹塑性,包含小变形理论,以及严格的有限变形和有限旋转理论。单晶的非弹性变形由于晶体滑移,假定遵从Schmid准则。提出多种多样的分切应力与剪切变形的自硬化和潜硬化关系,并且包含在子程序内。 1. 简介   有限元程序ABAQUS已经广泛应用在固体的变形与应力分析。除了自身大量

Niklas4088的博客 1万+

如何通过 GitHub Actions 使用 SSH 自动化部署到阿里云 ECS 实例

通过 GitHub Actions 和 SSH 自动化部署,可以显著提高你的开发效率和部署的可靠性。本文介绍了如何生成 SSH 密钥、将公钥添加到阿里云 ECS 实例、将私钥添加到 GitHub Secrets,以及编写 GitHub Actions 工作流来实现自动化部署。希望这篇文章对你有所帮助!

吃面不喝汤的博客 1514

Centos6系统yum无法使用-最新解决办法

一、CentOS6停止维护更新日期2020年11月30日 二、2020年12月2日下架了包括官方所有的CentOS6源 三、使用centos-vault作为更新源 1.官方地址 #阿里云 http://mirrors.aliyun.com/centos-vault/ #官方 https://vault.centos.org/ 2.使用阿里centos-vault源 vi /etc/yum.repos.d/CentOS-Base.repo # CentOS-Base.repo # # The mirr

庸人自扰 9295

Spring 核心技术解析【纯干货版】- I:Spring 基础模块 Spring-Core 模块精讲

Spring-Core 模块,是 Spring 核心容器模块之一。虽然 “Core” 本身就有 “核心的,重要的部分” 的含义,但是它并非是实现(常被我们说为 Spring 核心机制)IOC / AOP 的模块。Spring 中的 IOC 机制,主要来自于 BeanFactory 容器和 ApplicationContext 容器,这二者分别由同为核心容器模块的 Spring-Bean 模块 和 Spring-Context 模块所提供。

栗筝i的博客 2527

CentOS 6.8下supervisorctl连接失败的终极解决方案(附源码安装指南)

本文详细解析了CentOS 6.8下supervisorctl连接失败的常见原因及解决方案,重点介绍了通过源码编译安装supervisor 3.3.3版本的完整流程,包括配置文件优化、权限设置和系统服务集成,帮助用户彻底解决`inet_http_server`连接拒绝问题。

weixin_42666036的博客 311

YOLOv11改进策略【小目标改进】| 添加专用于小目标的检测层 附YOLOv1~YOLOv11的检测头变化详解

在目标检测领域,小目标检测一直是一个具有挑战性的问题。算法以其高效快速的特点受到广泛关注,然而在面对小目标时,仍存在一些局限性。本文将介绍如何在中添加小目标检测层,以提高对小目标的检测能力。原始模型结构如下:详细内容参考:YOLOv11原始模型结构介绍 二、有效特征层对应的检测头类别 2.1 P3/8 - small检测头 原始模型中的对应的检测头主要用于检测相对较小的目标。其特征图大小相对较大,空间分辨率较高。 适合检测尺寸大概在到像素左右的目标。 2.2 P4/16 - medium检测头 这个检

Limiiiing的博客 8804

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

在CentOS7.2中安装htop 安装 和 supervisor

在CentOS6.5中安装htop安装GCC及其编译的库如果没有安装gcc,按如下来安装 yum install -y gcc安装后,编译htop需要安装一个编译Linux内核的库 yum install -y ncurses-develHTOP下载,编译和安装htop下载 wget http://sourceforge.net/projects/htop/files/latest/download

q56231293811的专栏 3414

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

centos7安装supervisor及配置文件详解

centos7安装supervisor:    源码编译安装:下载源码文件:supervisor-3.3.1.tar.gz 下载地址:https://pypi.python.org/pypi/supervisor1234567891011121314安装:[root@cenots7 src]# tar -zxf supervisor-3.3.1.tar.gz[root@cenots7 src]# ...

mr_legeek的博客 2740

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建

在生产环境中通常用uwsgi作为Flask的web服务网关,通过nginx反向代理进行负载均衡,通过supervior进行服务进行的管理。这一套搭下来还是有一些坑要踩,本文通过一个简单的Flask web应用记录了CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建的全过程,以及一些注意事项,以免遗忘。 一、Python3环境安装 CentOS7下Python3环境安装参考 http://xiejava.ishareread.com/posts/57cef505/

学而思(xiejava的blog) 3546

Centos python3.7.4 & supervisor 安装

supervisor yum install epel-release yum install supervisor python3.7

sinat_18641775的博客 487

CentOS7离线部署全栈开发环境:.NET 8.0 SDK+EMQX+PostgreSQL+SuperVisor实战指南

本文提供了一份在CentOS7内网环境中离线部署全栈开发环境的实战指南。详细讲解了如何解决.NET 8.0 SDK的GLIBC依赖冲突,并逐步完成EMQX消息中间件、PostgreSQL数据库以及SuperVisor进程守护的安装与配置,特别适用于金融、政务等高安全要求或网络受限的场景。

5b6n7m8的博客 624

CentOS7源码安装node.js和webSocket

CentOS7源码安装node.js和webSocket 学习参考:http://ourjs.com/detail/529ca5950cb6498814000005   如果iptables是开启的,要先加入80端口和socket监听端口(可以自己设置) 官网:https://nodejs.org 下载页面:https://nodejs.org/download/release/ 中文

冯赛明的博客 1410

CentOs下安装python3并设为默认python

面试:你懂什么是分布式系统吗?Redis分布式锁都不会?>>> ...

weixin_36646275的博客 1189

华为云部署Centos7.6 Django+Gunicorn+Gevent+Supervisor+Nginx

测试环境Django默认使用sqlite3。由于CentOS7.6默认安装sqlite3版本为3.7.17,与较新的Django不兼容,因此需要升级。 创建gunicorn.py,通过gunicorn.py将Django项目和nginx连接在一起。 使用supervisor启动项目。

mighty13的专栏 3万+

11 linux suse 本地源_Centos or Suse获取离线安装包

使用yum仅下载rpm及其依赖yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了-downloadonly(只下载)的选项来达到这个目的。$ sudo yum install --downloadonly 默认情况下,一个下载的RPM包会保存在下面的目录中:/var/cache/yum/x86_64/[centos -version]/[repository]/packages以上的...

weixin_33480380的博客 754

Centos安装supervisor

yum install supervisor -y systemctl start supervisord systemctl enable supervisord cd /etc/supervisord.d/ vi meedu.ini 填入网站程序的配置文件 并修改对应路径 systemctl restart supervisord

withkai44的博客 212

CentOS 6.X x64 编译安装 Countly

CentOS 6.X x64 编译安装Countly 安装所需的软件 yum -y install supervisor ImageMagick sendmail 1. 安装 node.js wget http://nodejs.org/dist/v0.10.1/node-v0.10.1.tar.gz tar zxvf node-v0.10.1.tar.gz cd ...

weixin_30419799的博客 91
上一篇: RSA加密中的密钥规范详解:X509EncodedKeySpec与PKCS8EncodedKeySpec的区别与应用
下一篇: ESP32 BLE GATT五种操作原理与事件驱动编程
github5actions
博客等级 码龄1天 0粉丝 1824原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值