rproc - A Zero-Configuration Process Manager
Authored by: retoor Version: 1.1 Date: 2025-09-26
1. Overview
rproc is a lightweight, file-based, and zero-configuration process manager designed for simplicity and robustness. It monitors a single directory, treating the presence, absence, and modification of executable shell scripts (.sh files) as the source of truth for managing long-running processes.
Its design is predicated on providing a resilient service management layer with minimal operational overhead.
Key Advantages
- Simplicity and Intuitiveness: No complex commands, APIs, or configuration files are required. Process management is performed using standard shell commands (
touch,rm,mv,chmod), making it immediately accessible. - Extreme Resource Efficiency: As a compiled C binary using event-driven I/O (
inotify,select),rprochas a negligible memory and CPU footprint. It consumes system resources only when actively handling a file event or a process state change. - High Portability: The application is a single, self-contained executable with no external dependencies beyond the standard C library. This allows it to be deployed on nearly any modern Linux system without an installation procedure.
- GitOps-Friendly Workflow: Because the desired state of all processes is defined by files on disk,
rprocintegrates perfectly with version control systems. Managing services can be as simple as agit pullin the working directory to automatically add, remove, or restart processes based on the committed changes.
2. Core Concepts
The fundamental principle of rproc is that the state of the executable .sh files in its working directory directly represents the desired state of the managed processes.
- To run a process: Create an executable
.shfile. - To stop a process: Delete the
.shfile. - To restart a process: Modify the
.shfile.
rproc uses the Linux inotify subsystem to watch for these file system events in real-time and acts accordingly.
3. Installation
rproc is a single-file C application.
Compilation
Compile the source code using a standard C compiler like GCC:
gcc -Wall -Wextra -O2 -std=c11 -o rproc rproc.c
| .gitignore | |
| main.c | |
| Makefile | |
| README.md | |
| rproc | |
| rproc.service |