1.7 KiB
1.7 KiB
rss — RuSt Supervisor
Lightweight, per-user process supervisor. No daemon, no root, no virtualization.
Philosophy
- KISS — one binary, one job. Each service gets its own supervisor process.
- UNIX way — PID files for state, no IPC, no sockets.
- User-space — everything under
~/.config/rss/and~/.local/share/rss/. - No root — runs entirely as your user.
Usage
rss start <name> Start a service
rss stop <name> Stop a service
rss restart <name> Restart a service
rss status [name] Show service status
rss logs <name> [-n N] [-f] View logs (last N, follow)
rss enable <name> [--now] Enable auto-start
rss disable <name> Disable auto-start
rss list List all services
rss daemon Start all enabled services
Configuration
Place config.toml in ~/.config/rss/config.toml.
[service.NAME]
workdir = "/path/to/project"
command = "your command here"
stop_command = "optional stop command"
timeout_start = 15
timeout_stop = 10
restart = "on-failure" # no, always, on-failure
restart_delay = 3
restart_max = 5 # 0 = unlimited
oneshot = false
stop_signal = "TERM"
env = { KEY = "value" }
Placeholders in command / stop_command: {name}, {workdir}, {pid}, {log_file}, plus any env var.
See config.example.toml for a full example.
systemd (user mode)
mkdir -p ~/.config/systemd/user
cp contrib/rss.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable rss
systemctl --user start rss
Requires linger for headless users:
sudo loginctl enable-linger $USER
Install
cargo install --path .
License
MIT