# 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 Start a service rss stop Stop a service rss restart Restart a service rss status [name] Show service status rss logs [-n N] [-f] View logs (last N, follow) rss enable [--now] Enable auto-start rss disable Disable auto-start rss list List all services rss daemon Start all enabled services ``` ## Configuration Place `config.toml` in `~/.config/rss/config.toml`. ```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) ```sh 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: ```sh sudo loginctl enable-linger $USER ``` ## Install ```sh cargo install --path . ``` ## License MIT