Crates.io | systemg |
lib.rs | systemg |
version | |
source | src |
created_at | 2025-02-28 02:30:38.461804+00 |
updated_at | 2025-04-06 04:46:32.729494+00 |
description | A simple process manager. |
homepage | |
repository | |
max_upload_size | |
id | 1572395 |
Cargo.toml error: | TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
Systemg is a simple, fast, and dependency-free process manager written in Rust.
It aims to provide a minimal alternative to systemd and other heavyweight service managers, focusing on ease of use, clarity, and performance.
Traditional process managers like systemd are complex, heavy, and introduce unnecessary dependencies.
Systemg offers a lightweight, configuration-driven solution that's easy to set up and maintain.
.env
files and per-service configurations.Feature | Systemg | systemd | Supervisor | Docker Compose |
---|---|---|---|---|
Lightweight | Yes | No (Heavy) | No (Python) | No (Containers) |
No Dependencies | Yes | No (DBus, etc.) | No (Python) | No (Docker) |
Simple Config | YAML | Complex Units | INI | YAML |
Process Monitoring | Yes | Yes | Yes | Yes |
PID 1 Required? | No | Yes | No | No |
Handles Dependencies? | Yes | Yes | No | Yes |
Install systemg using cargo:
cargo install sysg
Or download the pre-built binary from the releases page.
The sysg
command-line interface provides several subcommands for managing processes.
Start the process manager with the given configuration:
# Start with default configuration file (systemg.yaml)
sysg start
# Start with a specific configuration file
sysg start --config systemg.yaml
# Start as a daemon process
sysg start --config systemg.yaml --daemonize
Stop the process manager or a specific service:
# Stop all services
sysg stop
# Stop a specific service
sysg stop --service myapp
Restart the process manager:
# Restart with current configuration
sysg restart
# Restart with a different configuration
sysg restart --config new-config.yaml
Check the status of running services:
# Show status of all services
sysg status
# Show status of a specific service
sysg status --service webserver
View logs for a specific service:
# 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
sysg logs database --lines 100
To run the test suite:
# Run all tests
cargo test
# Run specific test
cargo test test_service_lifecycle
To build systemg from source:
# Clone the repository
git clone https://github.com/ra0x3/systemg.git
cd systemg
# Build the project
cargo build --release
# The binary will be available at target/release/sysg
Contributions to systemg are welcome! Please see the CONTRIBUTING.md file for guidelines.