linux服务器安装supervisor全过程

 更新时间:2026年05月12日 09:42:50   作者:hu_wenjie  
本文介绍了在Linux服务器上安装、配置和使用Supervisor(进程管理工具)的过程,包括安装Supervisor、启动服务、配置文件、管理进程和日志管理等内容

在 Linux 服务器上安装和配置 Supervisor(一个用于进程管理的工具,常用于守护长时间运行的程序)的步骤如下:

1. 安装 Supervisor

RHEL/CentOS/Fedora

# 启用 EPEL 仓库(CentOS/RHEL)
sudo yum install epel-release  # CentOS 7 或更早
sudo dnf install epel-release  # CentOS 8+/Fedora

# 安装 Supervisor
sudo yum install supervisor      # CentOS 7
sudo dnf install supervisor      # CentOS 8+/Fedora

Debian/Ubuntu

sudo apt update
sudo apt install supervisor

通过 Python pip 安装(通用方法)

如果系统包管理器没有 Supervisor,可以用 pip 安装:

sudo apt install python3-pip  # Debian/Ubuntu
sudo yum install python3-pip  # CentOS/RHEL

sudo pip3 install supervisor

2. 启动 Supervisor 服务

Systemd 系统(CentOS 7+/Ubuntu 16.04+)

# 启动 Supervisor
sudo systemctl start supervisord

# 设置开机自启
sudo systemctl enable supervisord

# 检查状态
sudo systemctl status supervisord

3. 配置 Supervisor

Supervisor 的主配置文件通常位于:

  • /etc/supervisord.conf(主配置文件)
  • /etc/supervisor/conf.d/(子配置文件目录)
; Sample supervisor config file.

[unix_http_server]
file=/etc/supervisor/supervisor.sock   ; (the path to the socket file)

[supervisord]
logfile=/var/log/supervisord.log  ; (main log file;default $CWD/supervisord.log)
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
loglevel=info               ; (log level;default info; others: debug,warn,trace)
pidfile=/etc/supervisor/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
nodaemon=false              ; (start in foreground if true;default false)
minfds=65535                ; (min. avail startup file descriptors;default 1024)
minprocs=4096               ; (min. avail process descriptors;default 200)


[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///etc/supervisor/supervisor.sock ; 默认是配置在 /tmp 目录下,避免长时间未使用导致文件被删除,建议修改为 /etc/superviosr的目录下


[include]
files = /home/workspace/*/shell/supervisor.conf ;默认加载路径可以自己定义

示例:配置一个 Python 脚本(如myapp.py)

创建子配置文件

sudo vi /etc/supervisor/conf.d/myapp.conf

添加以下内容

[program:myapp]
command=/usr/bin/java -jar /path/to/myapp.jar  # 替换为你的命令
directory=/path/to/                          # 工作目录(可选)
user=root                                    # 运行用户(可选)
autostart=true                               # 随 Supervisor 启动
autorestart=true                             # 崩溃时自动重启
stderr_logfile=/home/logs/appname/myapp.err.log        # 错误日志
stdout_logfile=/home/logs/appname/myapp.out.log        # 输出日志
environment=HOME="/home/user",USER="user"    # 环境变量(可选)

检查配置语法

sudo supervisord -c /etc/supervisord.conf
# 或
sudo supervisorctl reread
sudo supervisorctl update

4. 管理 Supervisor 进程

使用supervisorctl命令

# 查看所有进程状态
sudo supervisorctl status

# 启动/停止/重启某个进程
sudo supervisorctl start myapp
sudo supervisorctl stop myapp
sudo supervisorctl restart myapp

# 重新加载所有配置(新增/修改配置后)
sudo supervisorctl reread
sudo supervisorctl update

# 查看日志
sudo supervisorctl tail myapp stderr  # 查看错误日志
sudo supervisorctl tail myapp stdout  # 查看输出日志

5. 日志管理

  • 主日志/var/log/supervisor/supervisord.log
  • 子进程日志:在配置文件中指定的 stderr_logfile 和 stdout_logfile

6. 开机自启(可选)

如果 Supervisor 没有自动启动,可以手动设置:

Systemd

sudo systemctl enable supervisord

7. 卸载 Supervisor(如需)

RHEL/CentOS/Fedora

sudo systemctl stop supervisord
sudo yum remove supervisor
sudo rm -rf /etc/supervisor /var/log/supervisor

Debian/Ubuntu

sudo systemctl stop supervisord
sudo apt purge supervisor
sudo rm -rf /etc/supervisor /var/log/supervisor

总结

  • 安装yum/apt/pip install supervisor
  • 启动systemctl start supervisord
  • 配置:在 /etc/supervisor/conf.d/ 下添加 .conf 文件
  • 管理supervisorctl start/stop/restart <程序名>
  • 日志:查看 /var/log/supervisor/ 或配置的日志路径

Supervisor 适合管理长时间运行的进程(如 Web 应用、队列任务等),比直接使用 nohup 或 & 更可靠! 

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • linux使用scp实现服务器A向服务器B传输文件

    linux使用scp实现服务器A向服务器B传输文件

    这篇文章主要介绍了linux使用scp实现服务器A向服务器B传输文件的相关资料,需要的朋友可以参考下
    2016-04-04
  • CentOS搭建PHP服务器环境简明教程

    CentOS搭建PHP服务器环境简明教程

    这篇文章主要介绍了CentOS搭建PHP服务器环境的方法,简单讲述了CentOS平台安装Apache、mysql、php环境及相关测试代码,非常简单实用,需要的朋友可以参考下
    2018-03-03
  • 缓存服务器的建立原理分析

    缓存服务器的建立原理分析

    通常情况下我们运行程序的过程中会产生一些中间数据,这些中间数据需要在将来的某个时间读取。这就要求我们要把它存在一个提供高速存取的地方,最好的选择就是内存中。
    2008-10-10
  • Centos7升级glibc导致系统异常(无法开机)解决方法

    Centos7升级glibc导致系统异常(无法开机)解决方法

    大家好,本篇文章主要讲的是Centos7升级glibc导致系统异常(无法开机)解决方法,感兴趣的同学赶快来看看吧,希望对你有帮助
    2021-11-11
  • Linux命令学习总结之rmdir命令

    Linux命令学习总结之rmdir命令

    这篇文章主要介绍了Linux命令学习总结之rmdir命令的相关资料,需要的朋友可以参考下
    2016-01-01
  • 从0开始简单部署腾讯云服务器的方法步骤

    从0开始简单部署腾讯云服务器的方法步骤

    这篇文章主要介绍了从0开始简单部署腾讯云服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 在Linux上搭建本地Docker Registry并实现远程连接过程

    在Linux上搭建本地Docker Registry并实现远程连接过程

    本文介绍了如何使用DockerRegistry和cpolar实现本地镜像仓库的远程pull和push操作,不受本地局域网限制,步骤包括部署DockerRegistry、本地测试推送镜像、安装和配置cpolar内网穿透工具、创建公网访问地址、配置固定公网地址等
    2025-12-12
  • linux下安装golang的方法

    linux下安装golang的方法

    这篇文章主要介绍了linux下安装golang的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • LNMP系列教程之 设置404错误页面

    LNMP系列教程之 设置404错误页面

    在之前的文章中分享到”设置301重定向的方法“文章,提到301,那肯定也要说说404错误页面吧。因为我们默认安装了LNMP后404页面不会自动设置,也不会默认到程序的404错误页面,而需要我们手工设置
    2012-09-09
  • linux下如何把进程/线程绑定到特定cpu核上运行

    linux下如何把进程/线程绑定到特定cpu核上运行

    这篇文章主要介绍了linux下如何把进程/线程绑定到特定cpu核上运行问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论