daemontools pk supervisord

明白了,你想搞清楚 daemontools、svc、supervise、supervisord 之间的关系,我帮你整理成一个清晰的对比和关系图。


1️⃣ daemontools 体系

名称类型作用关系/说明
daemontools 工具集 Linux 下守护进程管理工具 套件整体,包括 svscanbootsupervisesvcsvstatmultilog
svscanboot 进程 系统启动时扫描 /service 下的服务目录 启动每个 supervise 进程
supervise 进程 核心守护进程 监控指定服务目录的 run 脚本,保证服务一直运行
svc 命令 控制工具 supervise 的 FIFO 写命令,如启动/停止/重启
svstat 命令 状态查看工具 读取 supervise/status 查看服务是否在运行
multilog 工具 日志收集 可选,把 stdout/stderr 管理成日志文件

特点

  • 服务的配置就是服务目录 + run 脚本。

  • 默认无限拉起服务,崩溃自动重启。

  • systemd 只知道 daemontools.service,不关心每个业务服务。


2️⃣ supervisord 体系

名称类型作用关系/说明
supervisord 守护进程 Python 实现的进程管理器 后台运行,管理所有 program 配置的服务
supervisorctl 命令 控制工具 supervisord 的 socket 发命令,启动/停止/重启服务
配置文件 文件 服务列表及启动参数 /etc/supervisord.confsupervisord.d/*.ini

特点

  • 配置中心化,用 ini 文件指定每个服务。

  • 支持依赖、自动重启、日志收集。

  • 与 daemontools 完全独立,不能互通。


3️⃣ 对比 daemontools vs supervisord

特性daemontoolssupervisord
配置方式 服务目录 + run 脚本 ini 配置文件
服务拉起 supervise 进程无限拉起 supervisord 根据配置拉起
启停命令 svc -u/d/t supervisorctl start/stop/restart
状态查看 svstat supervisorctl status
日志处理 multilog(可选) 内置 stdout/stderr 管理
系统集成 systemd 只管理 daemontools.service supervisord 自己管理 socket,systemd 可做守护进程
优势 极简、稳定、无需 Python 配置灵活,适合复杂依赖
典型用途 小型服务/脚本、内网守护 Web 服务、应用服务、业务多样化场景

4️⃣ 总结关系

[systemd] 
   └─ daemontools.service (svscanboot)
         ├─ supervise service1
         ├─ supervise service2
         └─ supervise serviceN
               └─ run script (实际业务程序)

supervisord (独立 Python 守护进程)
   ├─ program1 (配置文件)
   ├─ program2
   └─ programN
  • daemontools 是进程级别、目录驱动,svc/svstat 是操作/查看工具。

  • supervisord 是配置驱动,supervisorctl 是操作/查看工具。

  • 两者完全独立,互不影响。


如果你需要,我可以帮你画一个 图解版流程图,把 systemd → daemontools → supervise → 服务supervisord → 服务 的运行/控制关系直观画出来,让区别一眼看懂。

你希望我画吗?

posted on 2025-08-19 13:38  吃草的青蛙  阅读(8)  评论(0)    收藏  举报

导航