A general-purpose program orchestrator.
- Read the Docs
- Getting Started
- 2.1 Installation
- 2.2 Usage
- Why systemg
- 3.1 Features
- How systemg Compares
$ curl --proto '=https' --tlsv1.2 -fsSL https://sh.sysg.dev/ | shSystem deployments: scripts/install-systemg.sh sets up /usr/bin/sysg, /etc/systemg, /var/lib/systemg. See security guide.
| 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: nonesink: 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 backed by
a bounded supervisor snapshot cache. 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 a fresh snapshot instead of
reading the cache.
Compose programs into systems with explicit dependencies and health checks.
- 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
| 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 |

