systemg
A general-purpose program orchestrator.
Table of Contents
- Read the Docs
- Getting Started
- 2.1 Installation
- 2.2 Usage
- Why systemg
- 3.1 Features
- How systemg Compares
Getting Started
Installation

|
System deployments: scripts/install-systemg.sh sets up /usr/bin/sysg, /etc/systemg, /var/lib/systemg. See security guide.
Usage
| Command | Description |
|---|---|
sysg start |
Start the default systemg.yaml in the foreground. |
sysg start --config my.yaml |
Start a specific config file. |
sysg start --daemonize |
Launch the supervisor in the background. |
sysg status |
Check current service state. |
sysg logs --service api |
View logs for a specific service. |
sysg restart --service api |
Restart one service without restarting everything. |
Tip:
--stderrredirects stderr from supervised processes to stdout with a[service_name:stderr]prefix, which is useful for debugging and CI pipelines.
By default, systemg captures service stdout/stderr through pipes and persists a local copy under its log directory. For high-output services, configure logging explicitly:
logs:
sink: file
max_bytes: 10485760
max_files: 5
status:
snapshot_mode: summary
snapshot_interval_secs: 5
services:
noisy_worker:
command: "worker --verbose"
logs:
sink: none
sink: none discards service output without creating systemg log-writer threads or files, which is useful when another production logging pipeline already collects process output.
status.snapshot_mode: summary keeps sysg status and sysg inspect
inexpensive while still reading current persisted state such as cron history.
Use detailed only when you need process tree and runtime command details for
diagnostics. Add --live to sysg status or sysg inspect when a single
request should force immediate runtime collection instead of the configured
snapshot mode.
Why systemg
Compose programs into systems with explicit dependencies and health checks.
Features
- Dependencies - Topological startup order with health-aware cascading
- Rolling Deployments - Blue-green swaps with health validation
- Environment -
.envfile propagation - Webhooks - Event notifications (docs)
- Cron - Scheduled tasks with overlap detection
- Spawning - Dynamic child process tracking
- OS Integration - systemd/cgroups when available
- Single Binary - No runtime dependencies
How systemg Compares
| Feature | systemg | systemd | Supervisor | Docker Compose |
|---|---|---|---|---|
| Focus | Program composition | System management | Process supervision | Container orchestration |
| Configuration | Declarative YAML | Unit files | INI files | YAML |
| Dependencies | Topological with health checks | Complex unit chains | Manual ordering | Service links |
| Deployments | Built-in rolling workflows | External tooling | Manual restarts | Recreate/rolling |
| Runtime deps | None | DBus, journal | Python | Docker daemon |
| OS integration | Optional | Required | None | Container runtime |