status
Check the health of services known to the running supervisor.sysg status asks that supervisor for an
aggregate view of every registered project. It reads current persisted state
such as cron history and uses each project’s configured status.snapshot_mode
for runtime detail. Use --live when you need systemg to force immediate
runtime collection for that request.
sysg status does not require a config file. If no supervisor is running and
you do not provide --config, it reports No running supervisor. Use
--config only when you want to scope status to a specific config/project or
when you explicitly want the no-supervisor disk fallback for that config.
Interactive Mode
By default,sysg status displays an interactive table where you can:
- ↓ / Tab (Down) - Move to the next service
- ↑ / Shift+Tab (Up) - Move to the previous service
- → / ← (Right / Left) - Move the focused cell across columns in the selected row
- I or Enter - Open the inspect view for the selected service
- H - Open the health report explaining why the selected unit is
WarnorFailing(see below) - L - Open a live log snapshot stream for the selected service
- R - Restart the selected service
- q, ESC, or Ctrl+C - Exit the status view
Why is it Warn or Failing?
The HEALTH column is a verdict, not an explanation. To see why a unit holds
its health, select it and press H. systemg opens a full-screen, README-style
health report in the same window:
Info: Press L while a UNIT row is selected to open that unit’s logs
without leaving the status workflow. The shortcut runs
sysg logs -s <UNIT> -l 100 --stream 2, giving you the latest 100 log lines
and refreshing the snapshot every 2 seconds.
Info: Press R while a UNIT row is selected to runsysg restart -s <UNIT>for that unit. When the row belongs to a project, the shortcut also passes--project <PROJECT_ID>so only that project’s unit is restarted.
Options
| Short | Long | Description |
|---|---|---|
-c | --config | Scope output to the project represented by this configuration file |
-s | --service | Show a specific service/unit |
-p | --project | Filter by stable project id |
- | --all | Show all services including orphaned state outside the selected project/config set |
- | --sys | Opt into privileged system mode. Requires running as root |
- | --format | Emit machine-readable output (json or xml) instead of a table; defaults to json when no value is provided (disables interactive mode) |
- | --no-color | Disable ANSI colors in output |
- | --live | Force immediate runtime collection instead of the configured snapshot mode |
- | --stream | Continuously refresh status at the provided interval (e.g., 5, 1s, 2m) (disables interactive mode) |
- | --log-level | Set verbosity (debug, info, warn, error) |
Examples
View all registered projects
View specific service
--service with --project.
View a project
project.id, not the renameable project display name.
View the project from a config
project.id, then filters the supervisor
status view to that project. If no supervisor is running, systemg falls back to
the persisted disk state for that config.
Stream status updates
Force live runtime collection
--live forces immediate runtime collection for this invocation. Regular
requests still read current persisted state such as cron history, while the
configured snapshot mode controls how much runtime process detail is collected.
Performance
The defaultstatus.snapshot_mode: summary keeps status inexpensive for larger
systems by skipping process tree expansion, runtime command lookups, and per-pid
user/uptime lookups. Use status.snapshot_mode: detailed when you want richer
process and spawn-tree detail in status/inspect views.
Output fields
- UNIT - Service, cron job, or orphaned state entry name.
- KIND - Unit type:
srvcfor a managed service,cronfor a cron job, ororphfor orphaned state that no longer matches the current configuration. - STATE - Current observed runtime state or last persisted lifecycle
outcome.
STATEanswers “what is this unit doing, or what happened most recently?” Values areRunning,Done,Failed,Stopped,Skipped,Lost,Zombie,Queued,Overlap, andUnknown. - INTENT - What systemg expects from the unit. Values are
Servefor long-running services,Oncefor one-shot services,Cronfor scheduled jobs,Manualfor manually controlled units,Skipfor skipped units, andOrphanfor persisted state without a matching config entry. - USER - Runtime process user when detailed runtime data is available.
- PID - Runtime process ID when the unit has a tracked process.
- CPU - Current CPU usage when runtime metrics are available.
- RSS - Resident memory usage when runtime metrics are available.
- UPTIME - Runtime process age when detailed runtime data is available.
- CMD - Configured command, or the live command line when detailed runtime data is available.
- LAST_EXIT - Last recorded exit code or signal when the unit has exited.
- HEALTH - Operator action signal.
HEALTHanswers “does this unit need attention?” Values areHealthy,Idle,Warn, andFailing. Press H on a selected unit to open a health report explaining the verdict and how to fix it.
State values
| State | Meaning |
|---|---|
Running | The unit has a live tracked process. |
Done | The unit completed successfully. |
Failed | The unit exited unsuccessfully or its latest cron run failed. |
Stopped | The unit was intentionally stopped and has no live process. |
Skipped | A configured skip rule prevented startup. |
Lost | systemg has PID state, but the process is no longer present. |
Zombie | The tracked process is a zombie. |
Queued | A cron unit is waiting for its next scheduled run. |
Overlap | A cron run was blocked by an existing run. |
Unknown | No reliable runtime or lifecycle fact is available. |
Intent values
| Intent | Meaning |
|---|---|
Serve | The unit is expected to stay available as a long-running service. |
Once | The unit is expected to run once and stop after success. |
Cron | The unit is schedule driven. |
Manual | systemg has no stronger configured expectation for the unit. |
Skip | The unit is configured to be skipped when its skip rule passes. |
Orphan | The state entry no longer matches a configured unit. |
Health values
| Health | Meaning |
|---|---|
Healthy | The unit is doing what systemg expects. |
Idle | The unit is inactive by design and does not require action. |
Warn | The unit is not in the expected state, but is not a hard failure. |
Failing | The unit failed or has a broken runtime condition. |
STATE, INTENT, and HEALTH are separate on purpose. STATE is factual,
INTENT explains what should normally happen, and HEALTH says whether an
operator should act. For example, Done + Once is Idle, while Stopped +
Serve is Warn.
The overview’s Status value is derived from unit health:
Failingif any unit isFailingWarnif no unit is failing but at least one unit isWarnHealthyotherwise
Idle units do not lower overall status.

