Skip to main content

Usage

Systemg uses a simple YAML-based configuration and supports the following commands. Beyond lifecycle management, you can attach webhooks to service events or run cron-scheduled jobs alongside long-lived processes.

Every command accepts --log-level <LEVEL> (string names like info/debug or numbers 0-5) if you want to change tracing output for a single invocation. For example, sysg status --log-level debug.

Start

Start with the default configuration file:

sysg start

Start with a specific configuration file:

sysg start --config systemg.yaml

Start the long-lived supervisor with a specific configuration file:

sysg start --config systemg.yaml --daemonize

Adjust the logging verbosity for the current invocation (string or numeric levels 0-5):

sysg start --log-level info
sysg start --log-level 4

Once the supervisor is running it stays alive after you log out and subsequent commands (status, restart, logs, stop) communicate with the same background process rather than re-spawning services.

Stop

Stop the supervisor and all managed services:

sysg stop

Stop a specific service:

sysg stop --service myapp

Restart

Restart all services managed by the supervisor:

sysg restart

Restart with a different configuration file:

sysg restart --config new-config.yaml

Status

Show the status of all services:

sysg status

Show the status of a specific service:

sysg status --service webserver

Logs

View the last 50 lines of logs for all services:

sysg logs

View logs for a specific service:

sysg logs api-service

View a custom number of log lines for a service:

sysg logs database --lines 100

Purge

Remove all systemg state and runtime files for a fresh start:

sysg purge

This command permanently deletes:

  • Service status history (state.json)
  • Cron execution history (cron_state.json)
  • All logs (supervisor and service logs)
  • Runtime files (PIDs, sockets, locks)

⚠️ Warning: This action cannot be undone. Your configuration files are safe, but all historical data and logs will be deleted.

Use this after ungraceful shutdowns, state corruption, or when you need a clean slate:

sysg stop
sysg purge
sysg start --config myapp.yaml --daemonize