Supervice

A modern, lightweight, and fully async process supervisor for Unix-like systems.

Supervice manages long-running processes with automatic restart, health checking, process grouping, hot config reload, and a Unix socket RPC interface — all built on Python’s asyncio with zero external dependencies.

Key Features

  • Async-first — Built entirely on asyncio for efficient I/O multiplexing

  • Zero dependencies — Pure Python stdlib only; nothing to install beyond Python 3.10+

  • Process groups — Organize processes and control them as a unit

  • Health checks — TCP and script-based health monitoring with auto-restart

  • Hot reload — Add/remove programs without restarting the daemon

  • Daemon mode — Double-fork daemonization with PID file locking

  • Graceful shutdown — Orderly stop of all child process trees

  • Log rotation — Built-in rotating file handler with configurable limits

  • Type-safe — Fully type-hinted, passes mypy --strict

Getting Started

pip install supervice
# supervisord.conf
[supervice]
logfile = supervice.log
pidfile = supervice.pid

[program:myapp]
command = python3 -u app.py
autostart = true
autorestart = true
supervice -c supervisord.conf -n    # foreground
supervicectl status                  # check status