Supervice 是面向类 Unix 系统的进程管理器,被描述为现代、轻量且完全异步的进程管理器。它基于 Python 的 asyncio 构建,不依赖外部包,可管理长时间运行的进程,支持自动重启、健康检查、进程分组、配置热重载和 Unix socket RPC 接口。它是纯 Python 实现,零依赖。 该工具提供进程组、健康检查、热重载、守护进程模式、优雅关闭、进程组终止、日志轮转、运行时长跟踪、带退避的重试、用户切换和类型安全。它需要 Python 3.10+ 以及 Linux 或 macOS 等类 Unix 操作系统。配置使用 INI 风格文件,包含 [supervice]、[program:NAME] 和 [group:NAME] 段。supervicectl 命令用于控制进程,包括 status、start、stop、restart、组操作和 reload。 平台支持方面,Linux 为一等支持,具备完整功能;FreeBSD 受支持;macOS 受支持,但进程监管不含 pdeathsig。在 macOS 上 pdeathsig 可被接受但不生效,若请求使用,supervice 会记录警告。对账机制会识别孤儿进程,并在启动替代进程之前将其终止。
团队用 Supervice 组织相关进程并作为一个整体进行控制。
团队用 Supervice 监控 TCP 连通性和基于脚本的健康状态,并自动重启。
团队用 Supervice 在不重启守护进程的情况下添加或移除程序。
团队用 Supervice 停止整个进程树,而不仅仅是主 PID。
团队用 Supervice 以可配置的大小和备份数量轮转日志。
团队用 Supervice 以指定用户身份运行进程。
团队用 Supervice 在状态输出中跟踪每个进程的实际运行时长。
团队用 Supervice 带退避地重试进程启动,并在重试耗尽后进入 FATAL 状态。