Linux supervisord 进程管理工具详解:守护进程自动重启实战

发布时间:2026/10/7 20:58:30

Linux supervisord 进程管理工具详解:守护进程自动重启实战 一、命令简介supervisord 是一个基于 Python 开发的进程管理工具用于在类 Unix 系统如 Linux中配置、启动、停止和监控后台服务或常驻进程。它可以将一个普通的命令行进程转换为后台守护进程并在进程异常退出时自动重启确保服务的持续可用性。supervisord 通常与 supervisorctl 命令行客户端配合使用实现对进程的集中管理。二、语法格式启动 supervisord 守护进程的基本语法为bash运行supervisord [options]主要组件说明supervisord服务端守护进程负责启动、管理配置中定义的子进程。 supervisorctl客户端命令行工具用于控制 supervisord 管理的进程如 start, stop, restart 等。 配置文件默认为 /etc/supervisor/supervisord.conf用于定义要管理的程序及其运行参数。三、常用选项及说明表格选项说明-c, --configuration FILENAME指定配置文件路径默认为 /etc/supervisor/supervisord.conf。-n, --nodaemon在前台运行不作为守护进程常用于调试。-h, --help显示帮助信息并退出。-v, --version显示版本信息并退出。-u, --user USER以指定用户身份运行 supervisord需 root 权限。-d, --directory DIRECTORY在启动前切换到指定目录。-l, --logfile FILENAME指定日志文件路径。-y, --logfile_maxbytes BYTES设置日志文件最大字节数。-z, --logfile_backups NUM设置保留的日志备份数量。-e, --loglevel LEVEL设置日志级别如 info, warn, error, debug。-j, --pidfile FILENAME指定 PID 文件路径。-m, --umask UMASK设置进程的 umask八进制格式。-a, --childlogdir DIRECTORY设置子进程日志目录。四、示例用法4.1 安装在基于 Debian/Ubuntu 的系统上安装bash运行sudo apt-get update sudo apt-get install supervisor安装后系统会自动创建默认配置文件 /etc/supervisor/supervisord.conf 和配置目录 /etc/supervisor/conf.d/。4.2 配置一个后台服务在 /etc/supervisor/conf.d/ 目录下为你的应用创建配置文件例如 myapp.confini[program:myapp] command/usr/bin/gunicorn -w 4 myapp:app ; 要执行的命令 directory/var/www/myapp ; 执行命令时的工作目录 userwww-data ; 运行进程的用户 autostarttrue ; 随 supervisord 启动而启动 autorestarttrue ; 进程退出后自动重启 redirect_stderrtrue ; 将标准错误重定向到标准输出 stdout_logfile/var/log/myapp.log ; 标准输出日志路径 environmentKEYvalue ; 设置环境变量4.3 启动 supervisord 服务安装后supervisord 通常作为系统服务运行。启动并设置开机自启bash运行sudo systemctl start supervisor sudo systemctl enable supervisor或直接使用 supervisord 命令指定配置文件bash运行sudo supervisord -c /etc/supervisor/supervisord.conf4.4 使用 supervisorctl 管理进程bash运行# 启动一个配置的程序 sudo supervisorctl start myapp # 停止一个程序 sudo supervisorctl stop myapp # 重启一个程序 sudo supervisorctl restart myapp # 查看所有程序状态 sudo supervisorctl status # 重新加载配置文件当添加或修改配置后 sudo supervisorctl reload # 更新配置仅重新加载有变化的配置 sudo supervisorctl update # 进入交互式控制台 sudo supervisorctl4.5 查看日志bash运行# 查看 supervisord 主日志 sudo tail -f /var/log/supervisor/supervisord.log # 查看特定程序的输出日志 sudo tail -f /var/log/myapp.log五、注意事项配置文件格式必须使用正确的 INI 格式每个[program:xxx]段定义一个进程。修改配置后需执行supervisorctl reload或supervisorctl update生效。权限问题确保 supervisord 进程及其子进程有适当的文件系统权限如日志目录、工作目录等。环境变量子进程默认不会继承 supervisord 的环境变量需在配置中通过environment选项显式设置。日志管理合理配置日志轮转避免日志文件无限增长占用磁盘空间。与系统服务集成在生产环境中建议通过 systemd 或 init 系统管理 supervisord 本身以确保其高可用。资源限制可通过配置设置进程的资源限制如 minfds, minprocs 等防止资源泄露。依赖包supervisord 依赖 Python 和 meld3 包确保它们已正确安装。六、相关资源官方文档http://supervisord.org/PyPI 项目页面 https://pypi.python.org/pypi/supervisor https://pypi.python.org/pypi/meld3GitHub 仓库https://github.com/Supervisor/supervisor通过以上配置和管理supervisord 可以有效地将各种后台进程如 Web 服务器、队列处理器、自定义脚本等转化为稳定、可监控的守护进程是服务运维中常用的轻量级进程管理方案。
延伸阅读

更多相关文章

2026/10/7 14:28:16

静态路由配置实战:从原理到华为eNSP实验,解决跨网段通信

你是不是曾经遇到过这样的问题:公司网络扩建,新加了一个网段,结果发现两个网段的电脑死活ping不通?或者在家里折腾智能家居,想让主路由下的设备访问旁路由上的服务,却发现网络不通?又或者&#…

2026/10/7 20:57:00

D类功放免滤波原理与实战避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 20:57:00

佳能MF645CX报错E302-0001定影故障深度检修步骤与实战案例

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 20:57:00

context-mode:大模型对话中的上下文管理与token优化实践

你可能也有过这种经历:明明只是想让AI帮忙整理一份长文档,结果聊到第十轮,它已经把最开始的要求忘得干干净净;或者代码没写几行,对话框里的tokens像流水一样往下掉,钱花了不少,回答质量却越来越…

2026/10/7 20:57:00

vLLM异步调度实战:CPU/GPU重叠与KV Cache管理优化

1. 从一次显存打满说起:异步调度到底在解决什么如果你部署过 vLLM,大概率遇到过这样的场景:模型权重加载完毕,服务正常启动,前几个请求响应飞快,但并发一上来,GPU 利用率曲线就开始剧烈抖动——…

2026/10/7 20:52:00

Altium Designer覆铜规则:热焊盘与过孔直连的配置与优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/7 8:18:33

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/6 17:46:51

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑