Linux 进程守护神:Supervisor 从入门到精通

966 字
5 分钟
Linux 进程守护神:Supervisor 从入门到精通

在 Linux 环境中,我们经常会遇到这样的场景:

  • 一个后端服务运行一段时间后异常退出

  • Python / Node / Java 程序需要在后台长期运行

  • SSH 断开后,进程就跟着没了

  • 希望进程崩溃后自动重启

这时,你就需要一个进程守护(Process Supervisor)工具,而 Supervisor 正是最经典、最稳定的解决方案之一。


一、Supervisor 是什么?#

Supervisor 是一个用 Python 编写的 Linux 进程管理与守护工具,主要用于:

  • 启动、停止、重启进程

  • 监控进程运行状态

  • 进程异常退出后自动拉起

  • 统一管理多个后台服务

Supervisor 本身不是服务框架,而是服务的“看门狗”


二、为什么要用 Supervisor?#

相比于直接 nohup、 & 或 screen / tmux,Supervisor 的优势非常明显:

方式是否自动重启是否开机启动是否统一管理
nohup
screen / tmux
systemd偏系统级
Supervisor非常适合应用级

适合场景:

  • 多个自写服务(爬虫、API、Bot)

  • Python / Node / Go / Java 应用

  • Docker 容器内部进程管理

可以参考用 Proxmox VE 管理多台 Docker 主机。


三、Supervisor 的核心组成#

Supervisor 主要由三部分组成:

  1. supervisord后台运行的守护进程,负责真正管理子进程

  2. supervisorctl命令行管理工具,用于控制进程

  3. 配置文件定义要守护的程序及其行为规则


四、Supervisor 安装#

使用系统包管理器(推荐)#

Ubuntu / Debian:

sudo apt update
sudo apt install supervisor

CentOS / Rocky / AlmaLinux:

sudo dnf install supervisor

安装完成后:

supervisord --version

使用 pip 安装(虚拟环境 / 容器中常用)#

pip install supervisor

然后手动启动:

supervisord

五、Supervisor 配置文件结构#

主配置文件通常在:

/etc/supervisor/supervisord.conf

常见子配置目录:

/etc/supervisor/conf.d/

**推荐做法:**一个服务一个 .conf 文件


六、最基础的进程守护示例#

以一个 Python 脚本为例:

示例程序#

/home/app/test.py
import time
while True:
print("running...")
time.sleep(5)

编写 Supervisor 配置#

新建文件:

/etc/supervisor/conf.d/test.conf

内容如下:

[program:test_app]
command=python3 /home/app/test.py
directory=/home/app
autostart=true
autorestart=true
startsecs=3
stderr_logfile=/var/log/test_app.err.log
stdout_logfile=/var/log/test_app.out.log

重新加载配置并启动#

sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start test_app

七、常用配置项说明(重点)#

配置项作用
command启动命令
autostartSupervisor 启动时是否自动启动
autorestart进程异常退出是否自动重启
startsecs启动后多少秒算成功
directory程序工作目录
user以哪个用户运行
stdout_logfile标准输出日志
stderr_logfile错误日志

八、supervisorctl 常用命令#

supervisorctl status # 查看所有进程状态
supervisorctl start xxx # 启动进程
supervisorctl stop xxx # 停止进程
supervisorctl restart xxx # 重启进程
supervisorctl reload # 重载全部配置

九、在 Docker 中使用 Supervisor#

Supervisor 非常适合 容器内管理多个进程

Dockerfile 示例:

RUN apt install -y supervisor
COPY supervisord.conf /etc/supervisor/supervisord.conf
CMD ["supervisord", "-n"]

注意:

  • -n 表示前台运行(Docker 必须)

  • 不要再额外 service start


十、Supervisor vs systemd#

对比项Supervisorsystemd
使用难度
配置复杂度简单偏复杂
适用范围应用级系统级
Docker 友好度

结论

  • 服务器应用管理 → Supervisor

  • 系统服务 / 守护进程 → systemd


十一、常见坑与注意事项#

1. 程序启动立刻退出#

  • 检查 command 是否正确

  • 手动运行一次命令

2. 日志文件无权限#

sudo chown -R appuser /var/log/

3. 修改配置不生效#

一定要执行:

supervisorctl reread
supervisorctl update

结语#

Supervisor 是一个简单、稳定、低心智负担的 Linux 进程守护方案,

非常适合:

  • 个人服务器

  • 自托管服务

  • Docker 容器

  • 小型后端项目

如果你已经用腻了 nohup,那 Supervisor 基本就是必学工具

延伸阅读#

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
Linux 进程守护神:Supervisor 从入门到精通
https://www.kshare.top/posts/linux-进程守护神supervisor-从入门到精通/
作者
Kshare
发布于
2026-02-07
许可协议
CC BY-NC-SA 4.0
相关文章 智能推荐
1
2026 1Panel 面板教程:宝塔开源替代,Docker 一键部署服务器管理面板
部署教程 1Panel 是飞致云出品的开源 Linux 服务器管理面板,无广告、不强制登录、支持 Docker 应用商店。本文覆盖与宝塔的对比、一键脚本与 Docker 安装、应用商店实战、网站反代与 HTTPS、备份与安全设置,附常见问题与避坑指南。
2
Hoodik:自托管端到端加密网盘,服务器永远看不到你的文件
部署教程 Hoodik 是一款轻量的自托管端到端加密云盘:所有文件在浏览器里用 AEGIS-128L 加密后才上传,服务器只存密文、看不到你的文件名、内容和密码。Docker 单容器部署,支持 SQLite/PostgreSQL 和 S3 后端,还有 Android/iOS 客户端。
3
2026 翼龙面板搭建我的世界服务器:Pterodactyl 图形化托管教程
部署教程 想开 Minecraft 服务器又不想整天对着终端敲命令?本文手把手用开源的 Pterodactyl 翼龙面板搭建我的世界服务器:Panel 网页控制台 + Wings Docker 节点,图形化管理多个游戏服,从装面板、建节点到导入 Minecraft egg 一键开服,附资源限制与备份配置。
4
2026 Dify 部署教程:开源 LLM 应用平台,Docker 搭建 AI 工作流与知识库
部署教程 Dify 部署教程:开源 LLM 应用开发平台,可视化编排 AI 工作流、搭建 RAG 知识库问答机器人、接入 DeepSeek/Ollama 等模型。本文覆盖 Docker Compose 安装、模型接入、知识库创建、应用发布与常见问题。
5
2026 one-api / new-api 部署教程:自建 AI API 中转网关,一套密钥接入全部模型
部署教程 one-api 部署教程:开源 LLM API 管理分发系统,把 OpenAI、DeepSeek、Claude、Ollama 等多个模型渠道统一成一个 OpenAI 兼容接口。本文覆盖 Docker 部署、渠道与令牌配置、分组限额、客户端接入与常见问题。
随机文章 随机推荐
Profile Image of the Author
Kshare
Hello, I'm Kshare.
重要公告
非常抱歉!本站此前接入的 Adsterra 广告联盟存在严重问题:其脚本会在访问者不知情的情况下强制跳转到第三方劫持页面(如 verify11.click 等恶意域名),严重影响了大家的访问体验与安全。我们已第一时间彻底移除了 Adsterra 的全部广告代码,并向因此受到困扰的访客致以最诚挚的歉意。目前站内仅保留安全的自营推广链接(无脚本、无弹窗、无跳转),其余广告投放保持关闭,感谢大家的理解与支持!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
215
分类
9
标签
269
总字数
545,433
运行时长
0
最后活动
0 天前

文章目录