# ochinchina/supervisord

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ochinchina-supervisord).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

4,262 stars · 618 forks · Go · MIT

## Links

- GitHub: https://github.com/ochinchina/supervisord
- awesome-repositories: https://awesome-repositories.com/repository/ochinchina-supervisord.md

## Description

This project is a Go process supervisor designed to start and monitor multiple background programs with automatic restarts and lifecycle management. It functions as a system for coordinating daemon execution, ensuring continuous operation through a central configuration.

The supervisor distinguishes itself with multiple remote administration interfaces, including a process management REST API, an XML-RPC controller, and a built-in web dashboard for monitoring and controlling processes. It features a Prometheus monitoring exporter that serves real-time performance metrics via a dedicated HTTP endpoint and secures these remote interfaces using basic authentication.

The system covers broad capability areas including log management with size-based rotation, automated health checking via TCP and HTTP polling, and service lifecycle orchestration through group-based priority scheduling. It also provides event-driven action triggers, a child process reaper to clean zombie processes, and a command-line interface for manual process control.

The software includes utilities for configuration template generation and can be integrated as a system service using custom environment files.

## Tags

### DevOps & Infrastructure

- [Background Process Managers](https://awesome-repositories.com/f/devops-infrastructure/background-process-managers.md) — Provides a comprehensive system for running applications as daemons with automatic restarts and lifecycle management.
- [Background Daemon Managers](https://awesome-repositories.com/f/devops-infrastructure/background-daemon-managers.md) — Ensures continuous execution as a background daemon independently of the user session on Unix and Windows. ([source](https://github.com/ochinchina/supervisord/blob/master/daemonize.go))
- [Environment Variable Configurations](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/environment-variable-configurations.md) — Imports key-value pairs from external environment files to inject runtime settings into managed processes. ([source](https://github.com/ochinchina/supervisord/blob/master/main.go))
- [Startup and Shutdown Sequencing](https://awesome-repositories.com/f/devops-infrastructure/process-grouping-utilities/startup-and-shutdown-sequencing.md) — Coordinates the specific order of process startup and shutdown using priority-based group scheduling.
- [File-Change-Triggered Restarts](https://awesome-repositories.com/f/devops-infrastructure/restart-automation/file-change-triggered-restarts.md) — Restarts processes automatically when executable binaries or monitored files are updated. ([source](https://github.com/ochinchina/supervisord#readme))

### System Administration & Monitoring

- [Process Supervisors](https://awesome-repositories.com/f/system-administration-monitoring/background-process-management/automatic-crash-recovery/process-supervisors.md) — Starts and monitors multiple background programs with automatic restarts and lifecycle management. ([source](https://github.com/ochinchina/supervisord/blob/master/Dockerfile))
- [REST Management APIs](https://awesome-repositories.com/f/system-administration-monitoring/cluster-management/rest-management-apis.md) — Implements a REST management API for controlling daemon lifecycles and retrieving system status programmatically.
- [Health Checks](https://awesome-repositories.com/f/system-administration-monitoring/health-checks.md) — Implements runtime health monitoring via TCP and HTTP probes to ensure background services remain operational.
- [Management API Exposures](https://awesome-repositories.com/f/system-administration-monitoring/management-api-exposures.md) — Provides a network interface to remotely administer and control background processes via HTTP requests. ([source](https://github.com/ochinchina/supervisord/blob/master/supervisor.ini))
- [Process Readiness Probes](https://awesome-repositories.com/f/system-administration-monitoring/network-readiness-checks/process-readiness-probes.md) — Verifies process readiness by scanning for specific strings in output streams or executing validation scripts. ([source](https://github.com/ochinchina/supervisord/blob/master/content_checker.go))
- [Polling-Based Health Monitors](https://awesome-repositories.com/f/system-administration-monitoring/polling-based-health-monitors.md) — Periodically validates process readiness by monitoring TCP connections, HTTP response codes, or specific output strings.
- [Remote Administration Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/remote-administration-interfaces.md) — Offers remote administration interfaces including a REST API and XML-RPC controller for managing background services.
- [Remote Process Management](https://awesome-repositories.com/f/system-administration-monitoring/remote-process-management.md) — Allows the use of network requests over sockets to manage and monitor active processes from external machines. ([source](https://github.com/ochinchina/supervisord/blob/master/supervisor.go))
- [Remote Server Management Tools](https://awesome-repositories.com/f/system-administration-monitoring/remote-server-management-tools.md) — Exposes a management server with authentication to control system operations from a remote location. ([source](https://github.com/ochinchina/supervisord#readme))
- [Process State Monitors](https://awesome-repositories.com/f/system-administration-monitoring/status-monitors/process-state-monitors.md) — Tracks and reports the operational status and process IDs of managed programs to ensure they run as expected. ([source](https://github.com/ochinchina/supervisord/blob/master/supervisor.go))
- [Service State Controls](https://awesome-repositories.com/f/system-administration-monitoring/background-process-management/automatic-crash-recovery/process-supervisors/supervisor-based-recovery/service-state-controls.md) — Provides administrative endpoints to manage the supervisor's operational state, including configuration reloading and service shutdown. ([source](https://github.com/ochinchina/supervisord/blob/master/rest-rpc.go))
- [Web-Based Management Interfaces](https://awesome-repositories.com/f/system-administration-monitoring/background-process-orchestration/web-based-management-interfaces.md) — Ships a built-in web interface to start, stop, and check the status of supervised programs. ([source](https://github.com/ochinchina/supervisord#readme))
- [Execution Log Redirection](https://awesome-repositories.com/f/system-administration-monitoring/execution-log-redirection.md) — Routes standard output and error streams from supervised processes to files, local syslog, or remote syslog servers. ([source](https://github.com/ochinchina/supervisord#readme))
- [Health Metrics Exposure](https://awesome-repositories.com/f/system-administration-monitoring/health-metrics-exposure.md) — Exposes internal system health and process performance metrics for external monitoring tools via HTTP. ([source](https://github.com/ochinchina/supervisord#readme))
- [Log Rotation Utilities](https://awesome-repositories.com/f/system-administration-monitoring/log-rotation-utilities.md) — Includes utilities for managing disk space by automatically rotating and archiving process log files based on size.
- [Prometheus-Formatted HTTP Endpoints](https://awesome-repositories.com/f/system-administration-monitoring/metrics-exporters/prometheus-formatted-http-endpoints.md) — Serves a Prometheus-formatted HTTP endpoint for external scraping of process and system metrics. ([source](https://github.com/ochinchina/supervisord/blob/master/README.md))
- [Process Log Captures](https://awesome-repositories.com/f/system-administration-monitoring/process-log-captures.md) — Captures process stdout and stderr into files with configurable rotation and backup counts. ([source](https://github.com/ochinchina/supervisord/blob/master/config_template.go))
- [Process State Event Listeners](https://awesome-repositories.com/f/system-administration-monitoring/process-state-event-listeners.md) — Provides programs that trigger automated actions based on changes in the state of managed processes. ([source](https://github.com/ochinchina/supervisord/blob/master/config_template.go))
- [Prometheus Metrics Exporters](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-exporters/prometheus-based-metric-exporters/prometheus-metrics-exporters.md) — Exposes real-time system and process metrics in Prometheus format via a dedicated HTTP endpoint.
- [Prometheus System Metrics Exporters](https://awesome-repositories.com/f/system-administration-monitoring/prometheus-exporters/prometheus-based-metric-exporters/prometheus-system-metrics-exporters.md) — Exports CPU, memory, and process metrics in Prometheus format through a dedicated REST endpoint. ([source](https://github.com/ochinchina/supervisord#readme))

### Web Development

- [Process Stream Redirection](https://awesome-repositories.com/f/web-development/error-handling/execution-error-captures/process-level-error-logging/process-stream-redirection.md) — Captures standard output and error streams from child processes into files with configurable rotation and size limits.

### Development Tools & Productivity

- [CLI Process Controllers](https://awesome-repositories.com/f/development-tools-productivity/cli-process-controllers.md) — Provides a command-line utility to trigger status checks and reload the runtime state of supervised processes. ([source](https://github.com/ochinchina/supervisord#readme))
- [Process Runtime Environment Configurations](https://awesome-repositories.com/f/development-tools-productivity/command-argument-parsers/environment-variable-configuration/process-runtime-environment-configurations.md) — Assigns environment variables and sets working directories to define the full execution context for spawned processes. ([source](https://github.com/ochinchina/supervisord#readme))
- [Process Event Triggers](https://awesome-repositories.com/f/development-tools-productivity/workflow-automation-triggers/event-driven-triggers/process-event-triggers.md) — Triggers specific actions based on process state changes, communication events, and timed intervals. ([source](https://github.com/ochinchina/supervisord/blob/master/README.md))

### Networking & Communication

- [REST API Interfaces](https://awesome-repositories.com/f/networking-communication/rest-api-interfaces.md) — Implements server-side RESTful endpoints for starting, stopping, and monitoring the status of running programs. ([source](https://github.com/ochinchina/supervisord/blob/master/rest-rpc.go))
- [XML-RPC Servers](https://awesome-repositories.com/f/networking-communication/xml-rpc-integrations/xml-rpc-servers.md) — Hosts an XML-RPC server to process remote procedure calls for controlling processes via TCP or Unix sockets.

### Operating Systems & Systems Programming

- [Zombie Process Reclamation](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/process-lifecycle-orchestrators/child-process-management-helpers/zombie-process-reclamation.md) — Automatically reclaims system resources from terminated child processes to prevent zombie processes and resource exhaustion.
- [Process Grouping and Prioritization](https://awesome-repositories.com/f/operating-systems-systems-programming/process-grouping-and-prioritization.md) — Organizes processes into logical groups with priority settings to coordinate the sequence of startup and shutdown.
- [Process Group Signaling](https://awesome-repositories.com/f/operating-systems-systems-programming/process-signal-forwarding/process-group-signaling.md) — Organizes multiple programs into groups for collective starting, stopping, and signaling of related processes. ([source](https://github.com/ochinchina/supervisord#readme))

### Software Engineering & Architecture

- [Process Lifecycle State Machines](https://awesome-repositories.com/f/software-engineering-architecture/state-machine-logic/lightweight-state-machines/automation-state-machines/entity-state-machines/architectural-state-machines/process-lifecycle-state-machines.md) — Uses a state machine to trigger automated actions based on process operational status changes and system ticks.

### Part of an Awesome List

- [Monitoring and Alerting](https://awesome-repositories.com/f/awesome-lists/devops/monitoring-and-alerting.md) — Process manager implementation.
