daemontools pk supervisord
明白了,你想搞清楚 daemontools、svc、supervise、supervisord 之间的关系,我帮你整理成一个清晰的对比和关系图。
1️⃣ daemontools 体系
| 名称 | 类型 | 作用 | 关系/说明 |
|---|---|---|---|
daemontools |
工具集 | Linux 下守护进程管理工具 | 套件整体,包括 svscanboot、supervise、svc、svstat、multilog 等 |
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.conf 或 supervisord.d/*.ini |
特点:
-
配置中心化,用 ini 文件指定每个服务。
-
支持依赖、自动重启、日志收集。
-
与 daemontools 完全独立,不能互通。
3️⃣ 对比 daemontools vs supervisord
| 特性 | daemontools | supervisord |
|---|---|---|
| 配置方式 | 服务目录 + 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 → 服务 的运行/控制关系直观画出来,让区别一眼看懂。
你希望我画吗?
浙公网安备 33010602011771号